Hi,
So, ich glaub ich habs jetzt. Es ist im Grunde immer noch die alte index.shtml die als erstes gesucht wird, wenn man nur das Verzeichnis als URL angibt.
Du kannst ja mal versuchen, an der Stelle, wo Du einen Dateinamen vermißt hast, "index.shtml" einzufügen ...
Wie du z.b. geschrieben hast, dass ein URL in Adress- und Parameterteil gesplittet wird, und der Adressteil immer _ein_ Dokument anspricht,
Genau genommen ist es noch etwas komplizierter - denn Du kannst dem URL in keinster Weise ansehen, welches Dokument angesprochen wird.
Stell Dir vor, Du hast einen URL der Art
http://domain.de/x/y.html
und der Server liefert ein Ergebnis zurück.
Daraus kannst Du *nicht* schließen, daß es eine Datei namens y.html auf dem Server gibt!
Du kannst noch nicht mal daraus schließen, daß es ein Verzeichnis x auf dem Server gibt!
Es könnte nämlich sein, daß x selbst ein CGI-Skript ist, welches vom Webserver aufgerufen wird, weil dessen Suche nach einem Verzeichnis x zu keinem Ergebnis führte, und daß dieses Skript dann seinen eigenen Aufruf-URL analysiert und den Teil "/y.html" herausschneidet.
Auf diese Weise kann man in einem URL sogar Parameter übergeben, denen man nicht ansehen kann, daß es Parameter sind ... (übliche CGI-Wrapper funktionieren genau auf diese Weise.)
da war mir das schon irgendwie klar, aber ich dachte eben nicht so weit, dass man den Server eventuell so konfigurieren könnte, dass es ein Verzeichnis auch tut, und eine Datei nicht unbedingt explizit angegeben werden muss ...
Genau das möchte ich mit meinen Postings aber vor allem rüberbringen: Der Server ist ein ungemein komplexes und mächtiges Werkzeug, und viele Effekte, die von den Seitenerstellern mühsam und browserspezifisch per JavaSript / ActiveX / sonstwas gebastelt werden, könnte der Webserver mit fertigem, jahrelang getesteten Code realisieren, wenn man ein paar Anweisungen in seine Konfigurationsdatei schreibt.
Programmier-Skills möchte ich gerne dort einsetzen, wo *neue* Probleme zu lösen sind.
Und v.a.: kann man das auch in einer .htaccess Datei verewigen oder brauchts Zugriff auf die httpd.conf ?
Das kommt darauf an, was in der httpd.conf steht. ;-)
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
Das ist nicht das, was ich meinte.
Diese Anweisung beschreibt, welche Dateien ignoriert werden sollen, *wenn* der Webserver tatsächlich aus dem Inhalt eines Verzeichnisses selbst *dynamisch* eine Seite bauen muß.
Die Anweisung "Options" regelt, welche Anweisungen Du innerhalb von .htaccess verwenden darfst.
(http://httpd.apache.org/docs/mod/core.html#options)
das steht bei mir (in der htaccess) schon drin, kann ich dann davon ausgehen, dass DirectoryDefault auch freigeschaltet ist?
Daß es drin steht, reicht nicht - aber wenn das auch eine *Wirkung* hat (ausprobieren!), dann hätten auch andere Anweisungen derselben Klasse (Indexes) eine Wirkung.
dann mache ich generell keine Links auf <irgendwas>/index.htm, weil es ja sein könnte, daß ich eines Tages SSI einsetzen will und dann index.shtml verwenden möchte und dann Millionen von Links anpasen muß
Allerdings darf man dann auch nix an den Parametern rumpfuschen!
Parameter habe ich ja gar keine, solange ich nur statische Dateien verlinke.
open.php?xml=/huhu/haha/hihi&xsl=brwoser
Der ideale Kandidat für einen Feldversuch des hier neu erlernten wissens ;-) dann gibts halt nur mal:
http://hihi.com/?xml=...&xsl=...
Klar - mach mal.
(http://httpd.apache.org/docs/mod/mod_dir.html#directoryindex)
Viele Grüße
Michael