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
:(
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.