Redirection htaccess et paramètres GET

Nouveau WRInaute
Bonjour,

Sur mon site je fais la redirection suivante :
monsite.fr/index.php/example1/example2 vers monsite.fr/index.php?page=example1/example2
La redirection marche bien mais si je veux passer des paramètres dans mon lien url ils ne sont pas pris en compte.
Voici le code dans mon fichier htaccess:
RewriteRule index.php/(.*)?(.*)$ index.php?pages=$1&$2 [L]
RewriteRule index.php/(.*)$ index.php?page=$1 [L]

Si quelqu'un a une idée... :)
Merci !
 
WRInaute discret
Il faut tester le query string.

Si j'ai bien compris ton exemple, tu désires réécrire tes urls de cette manière:

1) http://www.monsite.fr/index.php/ex-1/ex-2/.../ex-n vers index.php?page=ex-1/ex-2/.../ex-n (avec l'argument "page" sans "s" à la fin)

2) http://www.monsite.fr/index.php/ex-1/ex-2?param1=val1&param2=val2 vers index.php?pages=ex-1/ex-2&param1=val1&param2=val2 (avec l'argument "page" au pluriel)

Est-ce correct ? Si oui, voici comment procéder:

Code:
RewriteEngine on

RewriteCond     %{QUERY_STRING}     ^(.+)$
RewriteRule     ^index.php/(.*)$     index.php?pages=$1&%1 [L]

RewriteRule     ^index.php/(.*)$     index.php?page=$1 [L]

Premièrement, le "RewriteCond" teste la présence d'un query string. Si query string il y a, alors il réécrit avec les paramètres (premier "RewriteRule"), sinon il réécrit avec la seconde règle.

Voilà :)
 
Nouveau WRInaute
Alors c'est presque ça oui. page avec un "s" c'est un erreur de frappe, j'ai tout au singulier.
En gros ce que je voudrai rediriger c'est :

monsite.fr/index.php/test vers monsite.fr/index.php?page=test
et
monsite.fr/index.php/test?store=fr vers monsite.fr/index.php?page=test&store=fr
 
WRInaute discret
Donc ce que je t'ai écrit reste valable, il faut juste modifier "pages" par "page" dans un des deux RewriteRule.

Sinon, pour compacter le code, tu peux faire également la même chose en une ligne:

Code:
RewriteEngine on
RewriteRule     ^index.php/(.*)$     index.php?page=$1&%{QUERY_STRING} [L]
 
Discussions similaires
Haut