URL Rewriting via .htaccess > incompréhension

dev_web2

Nouveau WRInaute
Bonjour,

j'ai mis en place une réecriture basique de mes urls comme suit.

monsite.com/index.php?lang=fr => monsite.com/fr/

J'ai configurer le .htaccess au root de mon site avec le contenu suivant :

Code:
Options FollowSymLinks

RewriteEngine on

RewriteRule ^(fr|en)/?$ index.php?lang=$1 [L]

Ce qui résulte de cela : lorsque j'entre l'url www.monsite.com/fr je suis redirigé vers www.monsite.com/index.php?lang=fr alors que je souhaite est que l'url monsite.com/fr soit maintenue et que côté serveur, la variable $_GET lang transite correctement.

Merci d'avance pour vos avis / remarque(s).
 

Blount

WRInaute impliqué
Les paramètres d'URL ne peuvent être contrôlés dans les RewriteRule.
Il faut utiliser RewriteCond.

RewriteCond %{QUERY_STRING} lang=fr
RewriteRule (.*) /fr/$1 [L]
RewriteCond %{QUERY_STRING} lang=en
RewriteRule (.*) /en/$1 [L]

Je ne sais pas si on peut capturer dans les RewriteCond, je ne me suis jamais posé la question.
 

alaincassis

WRInaute impliqué
Et ecrire :
Code:
RewriteEngine on
Rewritebase /
RewriteRule ^fr index.php?lang=fr  [L]
RewriteRule ^en index.php?lang=en  [L]
C'est moins joli, mais ça devrait marcher, non ?
 

Blount

WRInaute impliqué
Ah, j'avais mal compris.

Effectivement, alaincassis est sur la bonne voie.
Code:
RewriteEngine on
Rewritebase /
RewriteRule ^(fr|en) index.php?lang=$1 [L,QSA]
 

Discussions similaires

Haut