Version complète: sur le forum Webmaster Hub : Pbm Rewriting
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
9clicx
Salut à tous,

J'essaie de mettre en place de l'URL Rewriting sur mon site.

Voici une copie de mon .htaccess :
RewriteEngine on
RewriteRule main(-.+)-([^-]+)-([^-&]*)([^-]*)\.html main$1&$2=$3$4\.html [N]
RewriteRule main-([^-]+)-([^-]*)(.*)\.html main.php?$1=$2$3 [L]
RewriteRule ^(.*).html $1.php [L]

Et j'envoie donc ce genre d'URL :
http://127.0.0.1/monsite.com/videos/main-p...deos-cat-1.html

Malheureusement, j'ai une erreur 400, et je ne comprends pas pourquoi.

Voici la log du rewrite:
127.0.0.1 - - [07/Jun/2005:09:03:30 +0200] [127.0.0.1/sid#845918][rid#38b81a8/initial] (3) [per-dir d:/mes documents/01-perso/weblocal/monsite.com/public/www/videos/] applying pattern 'main(-.+)-([^-]+)-([^-&]*)([^-]*)\.html' to uri 'd:/mes documents/01-perso/weblocal/monsite.com/public/www//videos/main-page-videos-cat-1.html'
127.0.0.1 - - [07/Jun/2005:09:03:30 +0200] [127.0.0.1/sid#845918][rid#38b81a8/initial] (2) [per-dir d:/mes documents/01-perso/weblocal/monsite.com/public/www/videos/] rewrite d:/mes documents/01-perso/weblocal/monsite.com/public/www//videos/main-page-videos-cat-1.html -> main-page-videos&cat=1.html
127.0.0.1 - - [07/Jun/2005:09:03:30 +0200] [127.0.0.1/sid#845918][rid#38b81a8/initial] (3) [per-dir d:/mes documents/01-perso/weblocal/monsite.com/public/www/videos/] applying pattern 'main(-.+)-([^-]+)-([^-&]*)([^-]*)\.html' to uri 'main-page-videos&cat=1.html'
127.0.0.1 - - [07/Jun/2005:09:03:30 +0200] [127.0.0.1/sid#845918][rid#38b81a8/initial] (3) [per-dir d:/mes documents/01-perso/weblocal/monsite.com/public/www/videos/] applying pattern 'main-([^-]+)-([^-]*)(.*)\.html' to uri 'main-page-videos&cat=1.html'
127.0.0.1 - - [07/Jun/2005:09:03:30 +0200] [127.0.0.1/sid#845918][rid#38b81a8/initial] (2) [per-dir d:/mes documents/01-perso/weblocal/monsite.com/public/www/videos/] rewrite main-page-videos&cat=1.html -> main.php?page=videos&cat=1
127.0.0.1 - - [07/Jun/2005:09:03:30 +0200] [127.0.0.1/sid#845918][rid#38b81a8/initial] (3) split uri=main.php?page=videos&cat=1-> uri=main.php, args=page=videos&cat=1

Si quelqu'un saurais dépatouiller mon pbm, ça m'enleverais une grosse epine du pied....

A+
Dan
Je cherche à comprendre à quoi peut bien te servir la règle suivante:
CODE
RewriteRule ^(.*).html $1.php [L]


Pour faire de la réécriture récursive, tu as un article sur le Hub: La réécriture d'URLs récursive

Dan
9clicx
Effectivement, cette ligne ne sert à rien mais meme sans, ça ne fonctionne pas mieux...

Alex
Dan
Je vois que tu as pris les règles qui sont mentionnées dans l'article. wink.gif

CODE
RewriteEngine on
RewriteRule index(-.+)-([^-]+)-([^-&]*)([^-]*)\.html index$1&$2=$3$4\.html [N]
RewriteRule index-([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]


Elles fonctionnent bien. Tu tournes quoi en local ? EasyPhp ?
9clicx
oui, effectivement, je vais pas ré-inventer la poudre, y'a plein de gens bien meilleurs que moi... ;-)

Par contre, effectivement, je suis sous easyphp, en local...

A+
Dan
Quelle version d'EasyPhp/Apache tournes-tu ?

Parce que la version EasyPhp 1.6 est fournie si je ne m'abuse avec une version Apache buggée pour le rewrite sous Windows.

Il faut au moins une version Apache 1.3.27 pour que ce bug dans rewrite.c disparaisse.
9clicx
je cherche depuis tout à l'heure ou je peux trouver la version....

bon, ok, c'est easyphp 1.7 (je crois) et apache 1.3.27 (sauf que phpinfo me donne 1.3.24???)

:gueule:

Je comprends rien...
9clicx
Bonjour,

J'ai installé easyphp 1.8 hier soir, et ça ne fonctionne pas mieux.....

Une idée?

A+
Dan
Quand je regarde la dernière ligne du log, elle me semble correcte vu que tu as les bons arguments.

CODE
127.0.0.1 - - [07/Jun/2005:09:03:30 +0200] [127.0.0.1/sid#845918][rid#38b81a8/initial] (3) split uri=main.php?page=videos&cat=1-> uri=main.php, args=page=videos&cat=1


Qu'as-tu après cette ligne ? Et qu'as-tu dans le log Apache ?
9clicx
J'ai rien du tout apres cette ligne dans le rewrite.log et dans le acces.log j'ai :
127.0.0.1 - - [08/Jun/2005:09:37:24 +0200] "GET /monsite.com/videos/main-page-videos-cat-1.html HTTP/1.1" 400 330
9clicx
Et par contre, ça fonctionne en ligne.....
Dan
C'est ce qu'il me semblait. Tu dois avoir un problème au niveau de EasyPhp.
As-tu essayé autre chose, par exemple Wampserver ?
http://www.wampserver.com
9clicx
Non, pas encore, mais je vais peut etre essayer...
9clicx
Bon, ben je viens d'essayer avec wamp, et c'est pareil.... ça marche pas mieux : Bad Request !!!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.