dedlfix: Folgefrage 1: URL Analyse - Basedir ermitteln

Beitrag lesen

Tach!

Auch in Fällen wie
http://example.net/path/to/resource
die "ausreichend" sind, wenn die eigentliche Resource die Index-Datei von
http://example.net/path/to/resource/
ist, liefert dirname dann
http://example.net/path/to

Nein, du musst und darfst keinen / hinzufügen. Wenn der Webserver darauf besteht, muss er dem Client einen Redirect zur Ressource mit / schicken. Der Client hat keine Möglichkeit, zu wissen oder festzustellen ob ein / zum Anfordern weiterer relativer Ressourcen notwendig ist oder nicht. Er muss und wird mit dem auskommen, was ihm bekannt ist. Für

http://example.net/path/to/resource

ist allein

http://example.net/path/to/

als Basis für relative Angaben zu verwenden.

Wenn also resource ein Verzeichnis ist und der Client .../resource anfordert, schickt der Server ein Redirect zu .../resource/, von dem aus der Client korrekt weiterarbeiten kann. Deswegen sollte man als derjenige, der den Link irgendwo hinschreibt den abschließenden / nicht weglassen, weil man sich so den Redirect sparen kann (auch wenn der zeitlich möglicherweise nicht ins Gewicht fällt).

Hast du evt. gleich noch einen Tipp für mich, falls solche Konstrukte wie "../../../path/to/resource.file" auftreten? Ich meine im Bezug auf meine "Basis-URL" und das entsprechende "rückwärtsgehen"?

Funktion realpath()

dedlfix.