problème de règle pour url rewriting

WRInaute discret
Bonjour,

J'ai un petit problème avec un fichier htaccess qui ne veut pas marcher pour une règle (la dernière) :

Donc avec ce contenu, la page contact.html ne s'affiche pas ni index.html par ex.

Code:
RewriteEngine On
RewriteRule ^liste-([a-z-]*)-([0-9]*)\.html liste.php?name_cat=$1&limit=$2 [L]
RewriteRule ^liste-([a-z-]*)\.html liste.php?name_cat=$1 [L]
RewriteRule ^recette-([a-z-]*)-([0-9]*)\.html recette.php?titre=$1&id_recette=$2 [L]
RewriteRule ^([a-z-]*)\.html sorte.php?sorte=$1 [L]
RewriteRule ^([a-z-]*)-([0-9]*)\.html sorte.php?sorte=$1&limit=$2 [L]
RewriteRule ^(.*)\.html index.php?page=$1 [L]

Par contre si j'enlève toutes les règles sauf la dernière et bien la page contact.html s'affiche bien.

Avec ce fichier, j'ai aussi fait le test et index.php?page=contact affiche bien le contenu de la page.

Je ne comprends pas ce qui ne va pas, alors merci d'avance si quelqu'un voit ce qui empêche la dernière règle de fonctionner :)
 
WRInaute discret
Si je met :

Code:
RewriteEngine On
RewriteRule ^liste-([a-z-]*)-([0-9]*)\.html$ liste.php?name_cat=$1&limit=$2 [L]
RewriteRule ^liste-([a-z-]*)\.html$ liste.php?name_cat=$1 [L]
RewriteRule ^recette-([a-z-]*)-([0-9]*)\.html$ recette.php?titre=$1&id_recette=$2 [L]
RewriteRule ^([a-z-]*)\.html$ sorte.php?sorte=$1 [L]
RewriteRule ^([a-z-]*)-([0-9]*)\.html$ sorte.php?sorte=$1&limit=$2 [L]
RewriteRule ^(.*)\.html$ index.php?page=$1 [L]

ça me fait exactement la même chose :(
 
WRInaute discret
Il n'y a pas de message d'erreur, ça m'affiche une page blanche alors que index.php?page=contact par ex affiche bien le contenu de la page souhaitée ! C'est bizarre, c'est comme si du coup les pages classiques ou du moins cette règle ne peut pas marcher ou est incompatible avec les autres règles :?
 
WRInaute passionné
Non spécialiste, quand je lis RewriteRule ^(.*)\.html$ index.php?page=$1 [L], je me dis que quand tu tapes index.html, ça recherche index.php?page=index

Essaie ainsi d'enlever RewriteRule ^(.*)\.html$ index.php?page=$1 [L] et remplace-le par RewriteRule ^contact\.html$ index.php?page=contact [L] pour tester contact.html
 
WRInaute discret
Non ça ne marche pas , enfin si si j'enlève les autres règles !

C'est toujours le même problème, il y a un conflit quelque part :?
 
WRInaute discret
Alors si je met (R,L] à la fin de chaque règle et bien il me redirige en local vers http://localhost/C:/wamp/www/recette-ph ... te=contact, c bizarre !!!

Alors que je demande la page http://localhost/recette-philomene/AV2/contact.html

Je remet le code, je ne comprends rien

Code:
RewriteEngine On
RewriteRule ^liste-([a-z-]*)-([0-9]*)\.html$ liste.php?name_cat=$1&limit=$2 [R,L]
RewriteRule ^liste-([a-z-]*)\.html$ liste.php?name_cat=$1 [R,L]
RewriteRule ^recette-([a-z-]*)-([0-9]*)\.html$ recette.php?titre=$1&id_recette=$2 [R,L]
RewriteRule ^([a-z-]*)\.html$ sorte.php?sorte=$1 [R,L]
RewriteRule ^([a-z-]*)-([0-9]*)\.html$ sorte.php?sorte=$1&limit=$2 [R,L]
RewriteRule ^(.*)\.html$ index.php?page=contact [R,L]
 
WRInaute discret
Donc si je met un / devant chaque adresse de redirection comme ça :

Code:
RewriteEngine On
RewriteRule ^liste-([a-z-]*)-([0-9]*)\.html$ /liste.php?name_cat=$1&limit=$2 [R,L]
RewriteRule ^liste-([a-z-]*)\.html$ /liste.php?name_cat=$1 [R,L]
RewriteRule ^recette-([a-z-]*)-([0-9]*)\.html$ /recette.php?titre=$1&id_recette=$2 [R,L]
RewriteRule ^([a-z-]*)\.html$ /sorte.php?sorte=$1 [R,L]
RewriteRule ^([a-z-]*)-([0-9]*)\.html$ /sorte.php?sorte=$1&limit=$2 [R,L]
RewriteRule ^(.*)\.html$ /index.php?page=$1 [R,L]

ça me redirige vers :
http://localhost/sorte.php?sorte=contact
 
WRInaute discret
Oui il est à la racine du site, c'est ça que je trouve bizarre, j'ai même fait le test en déplaçant mon dossier AV2 directement dans le www mais ça me fait exactement la même chose !!!

Enfin le fichier est à la racine du dossier AV2, c'est pour ça que j'ai fait ce test car AV2 était dans un autre dossier :) mais sans succès
 
WRInaute accro
tu n'as aucun / dans tes masques, alors que tu en as dans recette-philomene/AV2/contact.html les règles ne devraient même pas s'appliquer
 
WRInaute accro
théoriquement, il ne devrait en appliquer aucune, vu qu'il n'y a pas de / dans la règle et que tu as un ^définissant le début de la règle.
Mais sinon, les seules règles qui puisse s'appliquer sur contact.html sont bien les 4° et 6°, mais comme la 4° est appliquée, avec un [L] la 6 ne sert plus à rien.
vu qu'entre recette et html tu as un / qui n'apparait pas dans ton masque
 
Discussions similaires
Haut