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.