Lange Zeit habe ich mich gewundert, wie Flickr URLs wie
.../photos/emeidi/sets/72157594382685252/
mit mod_rewrite abfängt und an das korrekte Script schickt. Ein Slash und ein Parameter – das geht ja noch relativ locker. Doch was geschieht, wenn der Request unzählige Slashes und Parameter enthält?
Dank einem Digg-Artikel und den dazugehörenden Kommentaren (lustigerweise enthalten die Kommentare mehr Weisheit als der Artikel selbst) scheine ich nun auf der richtigen Spur zu sein:
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ index.php [L,QSA]
Erläuterung: Jede Anfrage, die nicht auf ein bestehendes Verzeichnis oder eine bestehende Datei zeigt, wird an index.php weitergereicht. (Nachtrag: Die fettgedruckten Zeichen musste ich einfügen, weil ich bei einem kurzen Test hier auf meinem Testserver immer einen 500er erhalten habe).
Okey, so weit, so gut. Nur noch eine Frage: Müssen die GET-Parameter nun innerhalb des Scripts richtig erkannt und zugeordnet werden?
Also konkret etwas in der Form …
$arr_get_vars = explode('/',$_SERVER['SCRIPT_URL']);
Hmmm – etwas umständlich und sicherheitstechnisch sehr gefährlich! Aber was man für SEF-URLs nicht alles tut …
Weiterführender Link
Unentbehrlich beim zähmen von mod_rewrite: Apache Module mod_rewrite