dedlfix: PHP ausgelesene Url verwenden

Beitrag lesen

Tach!

Wenn man den query-string bearbeiten will, sollte man auch das tun und nicht mit der Request_Uri anfangen. Zudem es für die Request_Uri in der Regel auch die bessere Alternative namens 'PHP_SELF' gibt die ohne den query-string daher kommt.

PHP_SELF ist nicht immer das, was der Nutzer als URL aufgerufen hat, sondern der Name des gestarteten Scripts, eventuell ergänzt um PathInfo (/foo.php/path/info). Ohne Pathinfo wäre es SCRIPT_FILENAME. Es ist keine generelle Alternative zu REQUEST_URI, wenn man wissen möchte, was der Nutzer wirklich aufgerufen hat. Das trifft zum Beispiel in Rewrite-/FallbackResource-Szenarien zu. Manche übersetzen mit ihren Regeln zwar nur bestimmte genau definierte Pfadteile in Querystring-Parameter, aber das ist unflexibel bei unterschiedlicher Anzahl. Dann ist es besser, .* auf index.php umzuschreiben (oder FallbackResource zu nehmen) und selbst die REQUEST_URI auszuwerten. Dass da noch der Querystring hintendranhängen kann, ist nicht weiter tragisch, den bekommt man mit parse_url() oder einfach beim ersten ? abgeschnitten.

Also besser Script und Parameter trennen.

Es gibt da kein generelles "besser", besonders wenn man die so genannten SEO-URLs verwenden möchte. Besser wäre nur, die gewünschten URL-Situationen durchzuspielen und dann zu schauen, welche Informationen über den Request an welcher Stelle in $_SERVER auftauchen.

dedlfix.