Vorhandene Querystrings bei URL-Rewriting übernehmen
Um dem URL ein hübsches und SEO-freundliches Design zu verpassen, nutze ich — wenn nicht ein Standard-CMS mir diese Arbyte abnimmt — für gewöhnlich das Apache-Modul mod_rewrite.
Mit Hilfe einer .htaccess-Datei wird so das einfache bar.html hinter den Kulissen in ein für die dynamische Webseite notwendiges index.php?foo=bar gewandelt:
RewriteEngine on
RewriteRule ^([a-z]+)\.html$ /index.php?foo=$1
Soweit so gut. Jetzt plagte mich aber das Problem, dass schon meine Ausgangsdatei allerlei weitere GET-Parameter im Querystring übergeben bekommt. So etwas kommt ja immer mal vor, z.B. bei internen Suchen etc. "Die Datei foo.html?q=query&p=page lässt sich aber nicht so ohne weiteres durch die RewriteEngine wursten", dachte ich mir und war schon kurz davor, alles irgendwie auf POST umzustellen oder eine endlose .htaccess-Datei zu verfassen.
Zum Glück kam mir die RTFM-Erleuchtung: Mit der kleinen Ergänzung [QSA], die für Querystring Append steht, wird der vorhandene Querystring einfach an den umgeschriebenen URL angehängt. Hätte ich ja auch früher drauf kommen können, dass da jemand mitgedacht hat ...
Das Ganze sieht dann so aus:
RewriteEngine on
RewriteRule ^([a-z]+)\.html$ /index.php?foo=$1 [QSA]
Aus bar.html?q=query wird also intern index.php?foo=bar?q=query.
Zurzeit sind 0 Kommentare zu diesem Thema vorhanden. Kommentar schreiben?

















