Rolf B: Pfad, Url ermitteln

Beitrag lesen

Hallo Jörg,

Nimm bevorzugt relative Adressen.

Amen.

Wo ist eigentlich REQUEST_SCHEME dokumentiert? Auf php.net nicht, aber jemand verwendet es da in einem Beispiel. Mein IIS gehostetes PHP hier zeigt mir diesen Eintrag nicht. Ist das eine Apache-spezifische SERVER-Variable?

Wenn man die URL zusammenbaut - muss man dann zwingend Schema, Host und Port davor setzen? Wenn http://example.org:4711/foo/bar/test.php die Datei http://example.org:4711/foo/baz/guggi.html referenzieren will, und vorhat, das mit Hilfe von SCRIPT_NAME zu tun, dann würde ich davon ausgehen, dass Schema, Host und Port definitiv gleich sind. Du tust es ja letztlich auch, weil Du die Informationen aus den $_SERVER Variablen ausliest.

Es gibt einen Anwendungsfall, wo man diese drei Informationen der URL hinzufügen muss, nämlich dann, wenn man jemand anderem diese URL als Link zum Kopieren geben will. Z.B. in einer Mail.

Das ist aber schon beim Generieren eines <a> Elements nicht mehr nötig. Wenn eine HTML Seite auf http://example.org:4711 einen Link mit href="/foo/baz/guggi.html" enthält, und der User dem Browser sagt: Copy link address, dann macht der Browser automatisch eine absolute URL draus (ok, Chrome tut es).

Wenn also http://example.org:4711/foo/bar/test.php einen Link auf http://example.org:4711/foo/baz/guggi.html setzen will, dann sollte es eins von diesen beiden sein:

<a href="../baz/guggi.html">Guckst Du relativ zu mir</a>
<a href="/foo/baz/guggi.html">Guckst Du absolut auf dem Server</a>

Das hier zu generieren, ist meiner Auffassung nach verschwendete Arbeitszeit:

<a href="http://example.org:4711/foo/baz/guggi.html">Guckst Du weltweit absolut</a>

Rolf

--
sumpsi - posui - obstruxi