[Résolu]Réécriture d'url et chemins absolus - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu]Réécriture d'url et chemins absolus (/showthread.php?tid=4395) Pages :
1
2
|
[Résolu]Réécriture d'url et chemins absolus - guile - 08-10-2009 Salut à tous, Je m'adresse à vous car je suis sûr que quelqu'un sait comment m'aider! Cela concerne le mod_rewrite d'apache, avec un soupçon de php. J'ai réussi à rendre une seule et même page accessible à partir de différentes url. http://sousdomaine.domaine.com/lang1/page1 http://sousdomaine.domaine.com/page1 http://www.domaine.com/sousdomaine/page1 http://www.domaine.com/sousdomaine/lang1/page1 Toutes ces url renvoient vers index.php?page=page1&lang=lang1 (car quand la langue n'est pas spécifiée, ça prend lang1 par défaut. Mon soucis vient de la suite : Je souhaite que PHP me trouve (par miracle? ) l'url absolue d'un fichier dont l'url absolue est soit : http://soudomaine.domaine.com/dossier/fichier.truc soit: http://www.domaine.com/sousdomaine/dossier/fichiers.truc Dans les variables $_SERVEUR, je ne trouve pas grand chose de très reluisant :-(. De plus, je ne veux pas voir dans mon code de référence en dure (genre if ($domaine== 'www.domaine.com'), ou bien if ($request_url == 'sousdomaine/...') ...), ni dans mon .htaccess. Le fait d'utiliser les / en séparateur est l'origine de mes problèmes, mais malheureusement ce séparateur est à mon goût le plus communément utilisé par l'utilisateur lambda. Le fait également de me donner comme limite de ne pas mettre des conditions en dur est limitant également, je sais, mais c'est pour m'éviter de devoir bidouiller des fichiers à chaque passage du serveur local, au serveur de prod. Et puis l'utilisation du sousdomaine est aussi à prendre en compte, sinon je n'aurais plus ce problème. Merci à ceux qui arriveront à m'aider. RE: Réécriture d'url et chemins absolus - Findel - 08-10-2009 Normalement un pti 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] devrait le faire RE: Réécriture d'url et chemins absolus - guile - 09-10-2009 Malheureusement ce n'est pas aussi simple : REQUEST_URI contient dans mon cas /lang1/page1 ou bien /sousdomaine/lang1/page1 Je n'ai aucune trace dans $_SERVER du répertoire de base du site :-( RE: Réécriture d'url et chemins absolus - christouphe - 09-10-2009 => $_SERVER["HTTP_REFERER"] ?? RE: Réécriture d'url et chemins absolus - guile - 09-10-2009 Pas de http_referer non plus. Voici ce qu'un print_r($_SERVER); me renvoie : Code : Array RE: Réécriture d'url et chemins absolus - Findel - 09-10-2009 tu veux dire quoi par absolue ? je pense que notre incompréhension et donc nos mauvaises réponses viennent de là. Tu veux le chemin physique sur le serveur de ton fichier ? Donne nous un exemple de ce que tu voudrais obtenir. Sinon tu peux aussi voir dans des constantes PHP du genre __FILE__. On s'en sert souvent pour déterminer la racine physique d'un site, en mettant par exemple un fichier à la racine et en y indiquant : $basephysique = dirname(__FILE__).DIRECTORY_SEPARATOR; RE: Réécriture d'url et chemins absolus - guile - 10-10-2009 Par exemple : Pour les URI suivantes : http://sousdomaine.domaine.com/ http://sousdomaine.domaine.com/lang1/page1/ http://sousdomaine.domaine.com/page1/ http://sousdomaine.domaine.com/lang1/ Je souhaite faire en sorte utiliser l'uri absolue suivante : http://soudomaine.domaine.com/dossier/fichier.truc Pour les URI suivantes : http://www.domaine.com/sousdomaine/ http://www.domaine.com/sousdomaine/page1/ http://www.domaine.com/sousdomaine/lang1/ http://www.domaine.com/sousdomaine/lang1/page1/ Je souhaite faire en sorte d'utiliser l'adresse : http://www.domaine.com/sousdomaine/dossier/fichiers.truc Je suppose dans mon code ne pas connaître le nom du domaine, et sûrement autres petits détails qui font que ce code puisse passer d'un serveur à l'autre, d'une config à l'autre, d'un domaine à un autre. Merci d'avance à vous si vous réussissez à m'aider RE: Réécriture d'url et chemins absolus - Allwise - 10-10-2009 Ce que je comprends pas c'est : pourquoi tu rewrites tes URL si c'est pour utiliser le chemin standard du fichier ? Pour résoudre ton problème tu peux tenter de faire un fichier qui parse le .htaccess à la recherche d'une règle qui correspond à l'URL courante pour en déterminer le fichier d'origine. Si tes règles de réécriture sont simples c'est jouable. Si ce sont des regexp compliquées faudra s'accrocher. Sinon, toujours dans le même esprit, au lieu d'utiliser "en dur" les liens rewritées, tu crées une fonction qui aura pour but de créer ces URL en fonction d'une liste de règles de réécritures, que tu définis toi-même quelque part. Ainsi l'URL réelle du fichier tu l'auras dans ton code plutôt que uniquement dans ton htaccess et tu pourras la retrouver partout. Y a peut-être plus simple, et peut-être possibilité d'activer / créer une variable d'environnement du côté d'Apache qui contiendrait l'URL réelle du fichier. RE: Réécriture d'url et chemins absolus - Anthor - 10-10-2009 Tu veux l'adresse des fichiers au niveau client ou au niveau serveur ? RE: Réécriture d'url et chemins absolus - Findel - 10-10-2009 Perso je vois pas le rapport entre les urls d'origine et l'url que tu souhaite en résultat... Je vois pas comment on peut en déduire l'une de l'autre puisqu'elle n'ont rien en commun Ou alors un détal m'échappe |