xpatval Posté 26 Mai 2005 Posté 26 Mai 2005 (modifié) Bonjour, après-midi (chaude), Comme beaucoup, je merdoie pleinement sur une règle de réécriture: L'url normale est la suivante: partenaires.php?im=affiche/image.jpg Or, je tente d'écrire la règle suivante: partenaire/affiche/image.html Comment est-ce faisable ? Merci, xpatval Modifié 26 Mai 2005 par xpatval
Dan Posté 26 Mai 2005 Posté 26 Mai 2005 RewriteEngine OnRewriteRule partenaire/([^/]+)/(.+)\.html partenaires.php?im=$1/$2.jpg [L] ... en me basant sur le fait que les deux mots sont séparés par un / Par contre, si tu veux que les liens dans le fichier partenaires.php (s'il y en a) fonctionnent, il faudra utiliser <base href="..."> Dan
Dan Posté 26 Mai 2005 Posté 26 Mai 2005 Mais si tu acceptes d'avoir un lien tel que partenaires/affiche/image (sans le .html et avec un s à partenaires) la réécriture n'est même pas nécessaire. Tu peux dans ce cas utiliser pathinfo() Dan
Hadrien Posté 26 Mai 2005 Posté 26 Mai 2005 Yep, le path info et le multiviews, j'utilise ça à mort, je suis fan À mettre dans le fichier .htaccess : Options +MultiViews Ensuite on se sert de $_SERVER["PATH_INFO"] en PHP Exemple : Avec : partenaires/affiche/image T'auras le script partenaires.php qui lira le paramètre path info « /affiche/image »
xpatval Posté 26 Mai 2005 Auteur Posté 26 Mai 2005 Et voilà, c'est super ici. On pose une question en réécriture d'url, dès que l'on post, un script enclenche automatiquement une alerte au sein de la cellule de crise du hub. Aussitôt, les bots de la terre entière scannent absolument partout, les BL demandent aux PR de démarrer une Danse, afin de rechercher et de trouver, où qu'il soit, quoi qu'il fasse, le FAISEUR d'URL-REWRITING, j'ai nommé un certain Nad. Dès que celui-ci a été repéré, et toujours automatiquement, la grande Aspireuse du Hub s'envole pour un succion technologique, et afin de lui aspirer l'une de ces lignes de code que lui-seul connaît. Une fois fait, l'Aspireuse retranscrit en temps réel le savoir de cet étrange personnage, mi-homme mi circuit imprimé, à qui l'on doit, entre autre, le WA Nad OO. Bon, ca y est , j'ai tout fumé !! Super, tout fonctionne comme Nad l'a dit. Par contre, cette page contient une ligne de récupération de date de mise à jour: $maj = date("d/m/Y", filemtime(basename($_SERVER['SCRIPT_NAME']))); Celle-ci fonctionne sans problème en local, mais plante en ligne (OVH-mutualisé) L'erreur retournée est la suivante: Warning: filemtime(): Stat failed for partenaires (errno=2 - No such file or directory) in /home.2/altit/www/partenaires.php Sachant que toutes les pages du site contiennent cette ligne, et qu'elles ne retournent aucune erreur, je soupçonne qd même fortement le rewriterule d'y être pour quelque chose. Allo l'Apireuse, un p"tit coup de succion ?
xpatval Posté 26 Mai 2005 Auteur Posté 26 Mai 2005 J'étais resté sur mon post premier, et n'avais pas vu que vous aviez commis d'autres réponses. Mais si tu acceptes d'avoir un lien tel que partenaires/affiche/image (sans le .html et avec un s à partenaires) la réécriture n'est même pas nécessaire. Quel est l'avantage de cette méthode ? xpatval
Dan Posté 26 Mai 2005 Posté 26 Mai 2005 Bon, ca y est , j'ai tout fumé !! C'est ce qu'il semble Pourquoi tu n'utiliserais pas $PHP_SELF ? Cette variable devrait contenir le nom du programme php qui s'exécute
xpatval Posté 26 Mai 2005 Auteur Posté 26 Mai 2005 Disons qu'à partir d'une page partenaires.php contenant des bannières, je rends possible, ainsi, l'affichage d'images promotionnelles, en souhaitant conserver la même page, et en ayant une url plus "propre". Et ce, sans passer par un JS. C'est vrai qu'il existe d'autres méthodes, mais j'aime bien ne pas faire tout le temps la même chose. $_PHPSELF avec une balmise <a> ? Cela fonctionne ?
xpatval Posté 26 Mai 2005 Auteur Posté 26 Mai 2005 Je précise qd même que l'affichage de l'image, avec la règle d'écriture, ne fonctionne pas du tout en ligne (alors qu'impeccablement en local...) RewriteRule ^partenaires/([^/]+)/(.+)\.html$ /partenaires.php?im=$1/$2.jpg [L] C'est la page partenaires.php qui s'affichent (la page "appelante"), mais avec l'url décrite dans la règle. Quelqu'un aurait-il une idée ? Merci, xpatval
Anonymus Posté 27 Mai 2005 Posté 27 Mai 2005 ? $_PHPSELF Dan parlait de la variable d'environnement : $PHP_SELF, apparemment
xpatval Posté 27 Mai 2005 Auteur Posté 27 Mai 2005 ? $_PHPSELF Oui, c'est nouveau. $PHP_SELF est passé en rééecriture... Cela étant, pourquoi ma page ne s'affiche-t-elle pas correctement en ligne ?
Dan Posté 27 Mai 2005 Posté 27 Mai 2005 Je précise qd même que l'affichage de l'image, avec la règle d'écriture, ne fonctionne pas du tout en ligne (alors qu'impeccablement en local...) RewriteRule ^partenaires/([^/]+)/(.+)\.html$ /partenaires.php?im=$1/$2.jpg [L] C'est la page partenaires.php qui s'affichent (la page "appelante"), mais avec l'url décrite dans la règle. Tu fais face au même problème que nous avons abordé dans un autre post, à savoir que php peut lancer un script même si l'extension est absente. Enlèves le s du premier partenaires pouyr mettre la règle telle que je t'ai donnée plus haut. Sinon tu fais comme je t'ai mentionné plus haut: Mais si tu acceptes d'avoir un lien tel que partenaires/affiche/image (sans le .html et avec un s à partenaires) la réécriture n'est même pas nécessaire. Tu peux dans ce cas utiliser pathinfo() Dan
Dan Posté 27 Mai 2005 Posté 27 Mai 2005 Et selon l'hébergeur, il faut ou ne faut pas mettre le / devant partenaires.php?im=$1/$2.jpg Il le faut chez OVH, il ne le faut pas chez Free Dan
xpatval Posté 27 Mai 2005 Auteur Posté 27 Mai 2005 Quand je suis bouché, je suis BOUCHé !! J'ai lu le thread en question. Mais bien entendu, je n'ai même pas fait gaffe au partenaire sans "s" de ta ligne de réécriture... Autant pour moi, voire au temps pour moi !! Merci Nad, cela fonctionne dorénavant. Par contre, question subsidiaire, pourquoi cela ne gênait en rien, en local ?
Dan Posté 27 Mai 2005 Posté 27 Mai 2005 Parce que ta configuration locale de Php n'est pas la même... tu tournes vraisemblablement php en module localement, et php en cgi chez l'hébergeur :!: Dan PS: ah... Nad c'était donc moi ?
xpatval Posté 27 Mai 2005 Auteur Posté 27 Mai 2005 php tourne en cgi chez ovh ? Oui, Nad ne pouvait être que toi !! Qui d'autre repond aussi souvent, et de manière idéale, aux questions de réécriture ? Et comme Dan par-ci, Dan par là.... xpatval
Dan Posté 27 Mai 2005 Posté 27 Mai 2005 php tourne en cgi chez ovh ? C'est vrai que la réécriture c'est "mon truc à mi" Oui... pour pouvoir donner à php l'identification de l'utilisateur et non celle d'Apache.
xpatval Posté 27 Mai 2005 Auteur Posté 27 Mai 2005 c'est toujours bon à savoir... Allez, merci encore; et à la prochaine question d'url-rewriting...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant