Aller au contenu

URL rewritng OVH je craque


Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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"... :rolleyes:

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... :P

Lien vers le commentaire
Partager sur d’autres sites

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 '-'

Lien vers le commentaire
Partager sur d’autres sites

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"... :rolleyes:

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... :P

mais pour cela, on peut a posteriori traiter l'identifiant véhiculé et vérifier la correspondance avec du PHP, non ?

Lien vers le commentaire
Partager sur d’autres sites

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é par georges
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 5
RewriteEngine on
Options +FollowSymlinks
Options -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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...