Wie übergebe ich GET-Parameter an eine umgeschriebene URL?

13

Ich habe eine .htaccessUmschreiberegel wie diese:

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

Dies geschieht, wenn jemand http://example.com/search/testdie URI besucht, die wirklich verarbeitet wird http://www.example.com/search.php?q=test.

Wenn ich nun versuche, einen zusätzlichen zufälligen GET-Parameter an meine umgeschriebene URL zu übergeben, wird der Parameter ignoriert. Also, wenn ich versuche, hier zu besuchen:

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

Der Parameter extrawird ignoriert. Es scheint überhaupt nicht bestanden zu werden.

Kann dieses Problem behoben werden? Wenn das so ist, wie?

Jake Wilson
quelle

Antworten:

14

Sie suchen nach der Query String Append Flagge - zB

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

In der mod_rewriteDokumentation finden Sie eine vollständige Beschreibung der RewriteRule-Flags.

danlefree
quelle
Ah schön! Ich wusste, dass es so etwas gibt. Ich bin ein .htaccessNoob.
Jake Wilson
Gibt es eine Möglichkeit, QSA zu allen Regeln hinzuzufügen
Hakkikonu
Hi @danlefree Wisst, dass es eine alte Frage ist, aber wenn ich Wamp benutze, verlieren alle meine Stylesheets, Skripte usw. den Bezug. wie kann ich das lösen
DannyGM