Url rewrite avec plusieurs paramètre et l'extension .html

Nouveau WRInaute
Bonjour à tous,
J'ai un petit url rewrite pour un site comportant au maximum 2 paramètres :
j'ai donc dans mon .htaccess deux lignes sous cette forme :

Code:
RewriteRule ^(.*).html$   index.php?page=$1 [L]
RewriteRule ^(.*)-(.*).html$ index.php?page=$1&rub=$2

La première fonctionne très bien, je peu apeller mes pages sous cette forme :

accueil.html qui est réécris de la manière suivante : index.php?page=accueil

mais pour la deuxième régle apellé comme ceci : page2-rubrique.html, ma règle ne fonctionne pas et je ne récupère pas le deuxième paramètre.
Si dans ma page index je fais un echo de $_GET['page'], je récupère page2-rubrique et $_GET['rub'] est undefined.

Si je retire l'extension de fichier .html dans mon fichier .htacess et dans les url apellées, cela fonctionne mais j'ai lu qu'il était préférable de laisser une extension type .html pour un meilleur référencement.

.htacess :
RewriteRule ^(.*)-(.*)$ index.php?page=$1&rub=$2

Liens dans les pages :
http://www.monsite.com/page2-rubrique


Je ne comprend pas pourquoi ca ne mache pas avec mes .html.
Merci de votre aide

Cordialement, Brex
 
WRInaute accro
Code:
RewriteRule ^(.*)-(.*).html$  index.php?page=$1&rub=$2 [L] 
ou
RewriteRule ^(.*)-(.*).html$  /index.php?page=$1&rub=$2 [L]
 
Nouveau WRInaute
J'ai essayé tes deux règles mais rien ne change, mon deuxième paramètre n'est pas interprété.
Je fais un test dans ma page index.php en fasiant :

Code:
echo '$_GET[\'page\'] >> '.$_GET['page'];
echo '$_GET[\'rub\'] >> '.$_GET['rub'];

Lorsqu'il y a un seul paramètre, la deuxième ligne revoie une erreur : normal.

Lorsqu'il y a deux paramètres, $_GET['page'] renvoie : page2-rub

Comme si le fichier .htaccess n'arrivait pas à couper les paramètre au niveaux du - (tiret), j'ai essayé avec des slash mais rien ne change.
Cela me semble bizzare, j'ai déja fais ce type de règle sans problème.
Je suis sous EasyPhp 1.7.

Merci,
Brex74
 
Nouveau WRInaute
Merci beaucoup, ca venait simplement de ca !
Alors, c'est très bien, ca fonctionne, mais est-ce que quelqu'un peut m'explique pourquoi il faut les mettre dans cet ordre ?
Le [L] ne défini pas la règle prioritaire ?

Merci, Brex74
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut