els Posté 8 Novembre 2009 Posté 8 Novembre 2009 Bonjour messieurs (et mesdames peu etre) Cela fait maintenant plus d'une semaine que je tente de modifier une règle de rewriting chez ovh et je n'y arrive pas ... J'avais une règle qui fonctionnait RewriteRule ^comparatif-prix-articles/(.+)-([0-9]+)\.html$ comparatif-prix-article-cybermarche.php?id_article=$2 [L] qui me transformait l'url suivante http://www.mondomaine.fr/comparatif-prix-articles/Herta_LE_BON_PARIS_Jambon_6_tranches/1.html en http://www.mondomaine.fr/comparatif-prix-article-cybermarche.php?id_article=1 je souhaite modifier le séparateur de - en / je code donc RewriteRule ^comparatif-prix-articles/(.+)/([0-9]+)\.html$ comparatif-prix-article-cybermarche.php?id_article=$2 [L] Et la cela ne fonctionne plus ??? au final je souhaiterai arriver à une url du type http://www.mondomaine.fr/comparatif-prix-articles/Herta_LE_BON_PARIS_Jambon_6_tranches/1/r/2009-10-07.html j'aurai mis la règle suivante en place RewriteRule ^comparatif-prix-articles/(.+)/([0-9]+)/r/([0-9]-+)\.html$ comparatif-prix-article-cybermarche.php?id_article=$2&date=$3 [L] J'ai lu pas mal de chose sur ovh sur ce forum mais même en faisant de long test je n'arrive pas a débloquer la situation Je n'ai pas assez de recul pour voir une énorme erreur ou il y a un truc que je n'ai pas compris dans l'url rewriting du coup j'en fait appel a votre aide Merci d'avance pour vos réponses qui m'aiderons j'en suis sur Eric
Remi Posté 9 Novembre 2009 Posté 9 Novembre 2009 Hormis le sempiternel problème du '/' qui manque au début de la cible (si c'est de l'OVH mutualisé), cela devrait fonctionner. Si ce n'est pas le cas, il faut regarder l'emplacement (si ce n'est pas à la racine) ou si d'autres règles interagissent. Mais, sans vouloir critiquer, je trouve le rewriting assez moyen car c'est vrai que ça marche avec "le bon jambon" mais ça marchera tout aussi bien avec "cueillette des olives en Basse Provence"... Pour un rewriting bien fait, il faut qu'il n'y ait qu'une URL qui se transforme en une autre. Bon, mais je me mêle peut-être de ce qui ne me regarde pas...
Dan Posté 9 Novembre 2009 Posté 9 Novembre 2009 C'est ta dernière règle qui n'est pas bonne... Au lieu de RewriteRule ^comparatif-prix-articles/(.+)/([0-9]+)/r/([0-9]-+)\.html$ comparatif-prix-article-cybermarche.php?id_article=$2&date=$3 [L] essaie avec RewriteRule ^comparatif-prix-articles/(.+)/([0-9]+)/r/([-0-9]+)\.html$ comparatif-prix-article-cybermarche.php?id_article=$2&date=$3 [L] Je change le ([0-9]-+) en ([-0-9]+) parce qu'avec la première formulation, tu ne permets qu'un chiffre et un ou plusieurs '-'
georges Posté 10 Novembre 2009 Posté 10 Novembre 2009 Mais, sans vouloir critiquer, je trouve le rewriting assez moyen car c'est vrai que ça marche avec "le bon jambon" mais ça marchera tout aussi bien avec "cueillette des olives en Basse Provence"... Pour un rewriting bien fait, il faut qu'il n'y ait qu'une URL qui se transforme en une autre. Bon, mais je me mêle peut-être de ce qui ne me regarde pas... mais pour cela, on peut a posteriori traiter l'identifiant véhiculé et vérifier la correspondance avec du PHP, non ?
captain_torche Posté 10 Novembre 2009 Posté 10 Novembre 2009 Dans ce cas, il faudrait carrément se passer de l'identifiant, et ne traiter que la chaîne de caractères
georges Posté 10 Novembre 2009 Posté 10 Novembre 2009 (modifié) Ok mais dans ce cas, si on a 1000 articles en bdd, il faudrait alors parser alors toutes les lignes de la bdd pour "matcher" la bonne chaîne tandis que avec l'identifiant, on vérifie directement la bonne ligne d'enregistrement quand même, non ? Modifié 10 Novembre 2009 par georges
captain_torche Posté 10 Novembre 2009 Posté 10 Novembre 2009 Tu fais pareil avec l'id, à ce qu'il me semble L'essentiel étant d'avoir une valeur indexée à rechercher. Dans l'idéal, tu enregistres même quelque part (dans une table à part, par exemple), la chaîne de caractères une fois passée à la moulinette pour qu'elle ressemble bien à une url.
georges Posté 10 Novembre 2009 Posté 10 Novembre 2009 ok, vu sous cet angle (le fait de stocker la chaîne), je comprends mieux.
captain_torche Posté 10 Novembre 2009 Posté 10 Novembre 2009 Et si tu gères bien ton script, tu peux même t'en servir pour faire des redirections 301 facilement en cas de renommage de page.
els Posté 11 Novembre 2009 Auteur Posté 11 Novembre 2009 Messieurs Merci pour vos réponses Je vais répondre dans l'odre : c'est effectivement pas la règle la plus "fine" qui soit mais en fait je fais cela pour le ref nat. Plus l'url est explicite mieux on est référencé il me semble. Alors oui à la place du jambon je peux mettre "Tante martine" cela devrait fonctionner aussi. Ensuite je passe un id derrière, car pour moi il est plus facile d'aller chercher un article référencé par un id dans ma base que de faire un full scan sur un champ texte Bref tout cela pour vous annoncer que ca ne fonctionne toujours pas même avec votre aide. voila mon htaccess SetEnv PHP_VER 5RewriteEngine onOptions +FollowSymlinksOptions -MultiViews RewriteRule ^/comparatif-prix-articles/(.+)-([0-9]+)\.html$ comparatif-prix-article-cybermarche.php?id_article=$2 cette ligne fonctionne RewriteRule ^/comparatif-prix-articles/(.+)-([0-9]+)\.html$ comparatif-prix-article-cybermarche.php?id_article=$2 pour cette url http://www.mondomaine.fr/comparatif-prix-articles/Herta_LE_BON_PARIS_Jambon_tranches-1.html par contre si je fais cela rien ne fonctionne plus cette ligne fonctionne RewriteRule ^/comparatif-prix-articles/(.+)-([0-9]+)-s\.html$ comparatif-prix-article-cybermarche.php?id_article=$2&from=s pour cette url http://www.mondomaine.fr/comparatif-prix-articles/Herta_LE_BON_PARIS_Jambon_tranches-1-s.html je ne sais vraiment pas comment faire Merci d'avance PS : c'est effectivement un OVH mutu Eric
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant