URL-Rewrite ohne Weitergabe des Query-Strings

Heute habe ich mal wieder ein nützliches kleines Snippet für euch. Ich stand vor kurzem vor dem Problem, dass ich bei einem Rewrite den Query-String entfernen wollte. Normalerweise ist es bei Rewrites ja so, dass ein vorhandener Query-String nur dann weitergegeben wird, wenn bei der RewriteRule das QSA-Flag gesetzt wurde.

Aber nun wollte ich einen existierenden Query-String von einem Rewrite entfernen. Dazu habe ich dann eine recht einfache Lösung gefunden. Man muss lediglich ein Fragezeichen das die Ziel-URL anhängen. Es könnte dann wie folgt aussehen:

RewriteCond %{QUERY_STRING} .+
RewriteRule ^script.php$ script.php?

Wir prüfen also zuerst, ob es einen Query-String gibt und entfernen diesen dann für das angegebene Skript durch Anhängen des Fragezeichens.

Zugegeben braucht man so etwas nur sehr selten, aber ich habe lange nach einer Möglichkeit gesucht genau das direkt per Mod-Rewrite zu lösen und nicht erst im Skript selbst. Ich hoffe es hilft auch euch weiter, wenn ihr ein ähnliches Problem habt.

Veröffentlicht von

Bernhard ist fest angestellter Webentwickler, entwickelt in seiner Freizeit Plugins, schreibt in seinem Blog über WordPress und andere Themen, treibt sich gerne bei den WP Meetups in Berlin und Potsdam herum und läuft nach Feierabend den ein oder anderen Halbmarathon.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert