RewriteCond pour l’URL avec les parameters

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 parameters 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 :

Cela 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, ça 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 

🙁

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 la RewriteRule supprime les informations de chaîne de requête précédentes.

Cela fonctionne parfaitement! Je l’ai utilisé – mais je me demande pourquoi l’URL cible affiche “% 3f” à la fin.

J’utilise:

  RewriteCond %{REQUEST_URI} ^/ie/xx/yy.php [NC] RewriteCond %{QUERY_STRING} ^rubric=(.*)&nr=(.*) RewriteRule (.*) https://www.newdom.com/xx/yy.php?rubric=%1&nr=%2 [R=301,L] 

Pourquoi% 3f est-il à la fin?