web-dev-qa-db-fra.com

RewriteCond pour l'URL avec des paramètres

J'ai un problème pour réécrire une URL. Je veux ceci :

http://www.foo.com/test.php?u=s1&id=12345&img=12

à

http://app.foo.com/12345-s1-12.test

Le premier paramètre u est une chaîne, les paramètres id et img sont des entiers.

J'ai commencé avec quelque chose comme ça:

RewriteCond %{REQUEST_URI} ^/test.php?u=(.*)&id=(.*)&img=(.*)/ [NC]
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]

Merci :)

MODIFIER:

Ça ne marche toujours pas mais je suis proche!

RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]

Maintenant, cela me donne ce lien:

http://app.foo.com/12345-s1-12.test?u=s1&id=12345&img=12

Au lieu de :

http://app.foo.com/12345-s1-12.test

:(

16
CrazyMax

Résolu!

RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test? [R=301,L]

Placer un ? à la fin de RewriteRule supprime les informations de chaîne de requête précédentes.

30
CrazyMax