Tach!
Bist du sicher, dass du nicht REQUEST_URI verwenden willst? Was ist mit Verzeichnissen (und Symlinks)?
Mit REQUEST_URI funktioniert die Abfrage auf Vorhandensein von Files leider nicht.
Mit REQUEST_FILENAME kann ich zumindest auf existierende Files prüfen und die von der Umleitung ausschließen, was genau erwünscht ist.
REQUEST_FILENAME ist doch richtig, REQUEST_URI war falsch in meiner Erinnerung.
RewriteRule .* index.php?%{THE_REQUEST}
Und der Query-String?
Es gibt eine CGI-Variable, die den originalen Request enthält (deren Namen du leicht mit print_r($_SERVER) findest). Den Wert kannst du gleich aus $_SERVER lesen, ohne dir $_GET mit nicht zum eigentlichen Request gehörenden Werten zu bevölkern.
Aber REQUEST_URI war eine der Variablen, die ich meinte. Da steht der nicht umgeschriebene Request drin - zumindest der interessante Teil.
Und dann gibt es noch REDIRECT_URL, der den Teil der URL ohne Host und ohne Querystring enthält.
Nach der Umleitung ist da aber nix drin, wenn man sie nicht mitliefert. Da ich sowohl die Quasi-Path-Info benötige, als auch den Querystring, habe ich mit den gesamten Request leifern lassen und ihn dann mittles kleiner Funktion selber auseinandergenommen.
Zu umständlich.
RewriteRule .* index.php [QSA]
Dann bekommst du ein ganz normales $_GET ohne Rewrite-Zeugs drin und die URL bekommst du wie gesagt aus REDIRECT_URL.
Ob ich an $_POST dann über PHP herankomme, weiß ich auch noch nicht.
Problemlos.
Das ist das Ergebnis des Tests mit POST:
GET:Array
(
[POST_/forms/anfrage_HTTP/1_1] =>
)
Das ist der THE_REQUEST mit ersetzten Leerzeichen, den du gar nicht in der Form benötigst.
$_POST kommt normal an in PHP, $_GET geht leider kaputt, kann man sich aber leicht selber wieder aufbauen.
Unnötig. Siehe oben. Dann bleibt auch der Querystring erhalten.
dedlfix.