web-dev-qa-db-fra.com

Comment passer les paramètres GET pour réécrire l'URL?

J'ai une règle de récriture .htaccess comme ceci:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1

Si quelqu'un visite http://example.com/search/test, l'URI réellement traité est http://www.example.com/search.php?q=test.

Maintenant, si j'essaie de passer un paramètre GET aléatoire supplémentaire à mon URL réécrite, le paramètre est ignoré. Donc si j'essaye de faire la visite ici:

http://www.example.com/search/whatever?extra=true

Le paramètre extra est ignoré. Il ne semble pas être passé du tout.

Ce problème peut-il être résolu? Si c'est le cas, comment?

12
Jake Wilson

Vous recherchez le drapeau Query String Append - p. Ex.

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1 [QSA]

Voir la documentation mod_rewrite] pour une description complète des indicateurs RewriteRule.

14
danlefree