dedlfix: mod_rewrite

Beitrag lesen

Tach!

Der Log-Zugriff ist das Problem,
das sehe ich auch so. Ich werde mal beim Hoster anfragen.

Der wird da nichts machen. Das RewriteLog kann (außer generell) nur im VHost eingeschaltet werden und es schreibt ziemlich viele Daten pro Request. Das will der Hoster sicher nicht auf Produktivmaschinen aktiviert haben.

Wenn du beim Hoster kein RewriteLog anlegen kannst (...), dann kannst du immer noch zu Hause ein gleichwertiges System aufzusetzen versuchen.
Schwer, weil ich es nicht schaffe, mit Subdomains zu arbeiten. HTTP_HOST ist immer "localhost".

Das kann eigentlich nicht sein. Da muss das drinstehen, was du in der URL angegeben hast, egal zu welcher IP-Adresse dein DNS oder deine hosts-Datei das auflöst.

Ich würde mich aber nicht auf die Suche danach begeben, sondern die Rewrite-Regel so simpel wie möglich schreiben, dass einfach nur ein PHP-Script aufgerufen wird, ohne weitere Parameter. Im Script kannst du dann nach Herzenslust $_SERVER['REQUEST_URI') auseinandernehmen und auswerten.
Genau das ist ja das Problem. Diese Variable ist dann nämlich leer, wenn ich es nicht mit $1 ranhänge!

REQUEST_URI kann nie leer sein. Da muss mindestens / drinstehen. Ein Browser kann nicht "nichts" anfordern, das verhindert das HTTP. Der kleinstmögliche GET-Request (abgesehen vom irrelevanten HTTP 0.9) ist

GET / HTTP/1.0

Die RequestURI ist also immer mindestens ein Zeichen lang.

(Oder auch was anderes. Schau einfach nach, was da in $_SERVER alles verwendbares drinsteht.)
Nirgendwo ist der ursprüngliche URI drin.

Die komplette URL steht da auch nicht drin, weil sie gar nicht so komplett vom Browser gesendet wird. Du wirst immer nur Teile darin finden. HTTP_HOST und REQUEST_URI sind immer da. Wenn nicht, ist irgendwas falsch - möglicherweise auch deine Debugausgabe-Methode.

Ideen, wie ich es dann ohne den Proxyrequest lösen kann?

Wie bereits von mir und Sven empfohlen, mit simplem Rewrite und Selbstauswertung von Request-URI und HTTP-Host.

dedlfix.