hi,
Wenn ich nun im Shop bin und auf einen anderen Menüpunkt klicke, versucht er z.b. in shop/video.html zu gehen. Das gibts aber nicht - gibt es ne möglichkeit, das irgendwie zu lösen, ohne jetzt den kompletten Pfad (http://...) einzupflegen?
Freilich. Die Pfadangaben auf einem Webserver beziehen sich auf die Document-Root und es gilt:
/ ist das Stammverzeichnis
Siehst Du ein Protokoll, like "http:"? Ja, ne, klar, das brauchen wir nämlich gar nicht bei Pfadangaben. Aber was wir brauchen, ist eine auf das Stammverzeichnis bezogene absolute Pfadangabe. Und die ist ganz einfach:
/index.html
/foo/index.html
/bar/index.html
/cgi-bin/web.cgi
/images/fun.gif
Egal, wo im Filesystem das Verzeichnis Document-Root physisch liegt, der Webserver übersetzt den Request 1:1 ab / in die Unterverzeichnisse, auch egal, ob das Protokoll http oder https ist.
Relative Pfade like '../../tipp/top/index.html' sind zwar auch schön und gut, weil die sowohl über den Webserver als auch übers Dateisystem funktionieren. Aber wehe, der Webserver ist so konfiguriert, dass er einem Verzeichniswechsel ../ nicht folgt, ja, das gibts! Also Finger wech von sowas.
Haben wir noch ein <img src="girl.gif">, naja, das geht auch nur solange gut, wie die HTML-Datei im gleichen Verzeichnis ist und zwar physikalisch. Tatsächlich aber ist das überhaupt keine Pfadangabe und manche Browser wissen da auch nicht, wo das girl zu holen ist.
Was uns bleibt sind absolute Pfadangaben bezogen auf die Document-Root, siehe oben. Nur so können sich Browser und Webserver fehlerfrei verständigen. Ergo notiere eine Slash vornedran und alles wird gut.
Hotti