phpbar.de logo

Mailinglisten-Archive

[php] url dir or file

[php] url dir or file

Hartmut Holzgraefe hartmut_(at)_six.de
Thu, 16 Nov 2000 19:49:28 +0100


Daniel Nemetz wrote:
> 
> >du kannst natürlich versuchen, HEAD-Requests zu verschicken
> >und prüfen, ob du als Antwort auf eine URL /ein/beliebiger/pfad
> >einen Redirect auf /ein/beliebiger/pfad/ zurückbekommst, aber
> >das sagt immer noch nichts über das Dateisystem des Servers aus

> folgendes ich/ein freund schreibt/e eine suchmaschine. wenn er nun einen
> link in einer datei (sorry in einem per http zurückgeliefertem text)
> zurückverfolgt so hat er das problem das er nicht weis ob die datei auf die
> der link verweist im gleichen verzeichnis liegt oder eines tiefer, nähmlich
> in dem verzeichnis welches aussieht als sei es eine datei. das muss er aber
> wissen um die datei auf welche der link verweist auch durchsuchen zu können.

ok, reduzieren wir uns auf den üblichen Fall: URL-Namespace bildet
Dateisystem ab

http://xxx/ein/beliebiger/pfad wird angefordert, pfad ist ein 
Verzeichnis

wenn du dem Server mitteilst das du wenigstens HTTP/1.0 verstehst,
dann antwortet er mit Status 301 (Moved Permanently) und
schickt dir einen Location: header mit der richtigen URL zurück
und erzählt dir das Ganze vielleicht auch noch in HTML, falls
du doch kein HTTP verstehst

aus   http://xxx/ein/beliebiger/pfad 
wird  http://xxx/ein/beliebiger/pfad/

erst wenn du jetzt die neue URL, die du zurückbekommen hast,
anforderst, bekommst du den Inhalt der Seite
und alle relativen URLs können einfach angehängt werden, nachdem
alles bis excl. des letzten '/' vom Ende der URL entfernt wurde

d.h. du brauchst dir keine Gedanken über Datei oder Verzeichnis
zu machen, vielmehr mußt du sicherstellen, das du alle 
HTTP-Statuscodes verstehst 

und vergiss bitte nicht das <BASE> Tag zu beachten ...!






--
Hartmut Holzgraefe  hartmut_(at)_six.de  http://www.six.de  +49-711-99091-77


php::bar PHP Wiki   -   Listenarchive