8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'essaye de mettre en place une réécriture d'url pour mon site hébergé chez OVH. J'ai pour cela créé un fichier htaccess contenant les lignes suivantes:

RewriteEngine on
RewriteRule ^index-(fr|en)\.html$ index.php?lang=$1 [L]
RewriteRule ^([\w]+)-(fr|en)\.html$ graphics.php?cat=$1&lang=$2 [L]
RewriteRule ^([\w]+)-([\w]+)-([0-9]+)-(fr|en)\.html$ graphics.php?cat=$1&subcat=$2&page=$3&lang=$4 [L]
RewriteRule ^([\w]+)-([\w]+)-([\w.]+)-(fr|en)\.html$ graphics.php?cat=$1&subcat=$2&view=$3&lang=$4 [L]


En local avec Wamp, toutes les urls fonctionnent très bien. Mais en ligne sur le serveur d'OVH seule la première règle fonctionne, les autres produisent une erreur 404 Not Found.

Auriez-vous une idée de ce qui peut clocher?

Je vous remercie de votre aide.
Modifié par TheRookie (03 Sep 2007 - 23:58)
A mon avis c'est l'interprétation de tes regexp qui diffère, en l'occurence ton [\w]
Soit enlève les crochets, soit remplace par quelque chose comme [a-zA-Z0-9], je pense que ça sera mieux.
C'était bien cela Quentin. J'y ai pensé quelques minutes après avoir posté mon premier message, j'ai essayé et c'était en effet le [\w] qui n'était pas bien compris sur le serveur d'OVH. Je te remercie d'avoir pris la peine de me répondre. Smiley smile
A mon avis \w sans les crochets aurait pu passer aussi.
Les flags spéciaux comme \w \d \s etc. ne sont à ma connaissance pas valides dans une classe de caractères.
Ah, très bien. Désolé, je ne m'y connais pas beaucoup en réécriture d'url, et comme le [\w] fonctionnait avec Wamp, j'ai été surpris que cela ne fonctionne pas en ligne. Smiley biggrin