Index-Seiten automatisch erzeugen lassen
Aus MostlyHarmless
Inhaltsverzeichnis |
Einleitung
Wenn man in einem Verzeichnis keine Index-Datei anlegt (in der Art, wie durch `DirectoryIndex` vorgegeben), kann Apache selber ein Verzeichnislisting anlegen, das recht gut formatiert ist. Das folgende Konfigurationsbeispiel gibt die Einträge in der httpd.conf für http://downloads.atari42.de wieder:
<Directory /home/voja/ataridownloads> Options Indexes -ExecCGI FollowSymLinks IncludesNOEXEC IndexOptions FancyIndexing FoldersFirst +SuppressHTMLPreamble HeaderName HEADER.html ReadmeName /README.html </Directory> <VirtualHost 217.160.129.177> ServerName downloads.atari42.de ServerAdmin webmaster@atari42.de DocumentRoot /home/voja/ataridownloads TransferLog /home/logfiles/atari-downloads/access_log </VirtualHost>
Die Options Direktive
- Indexes Hiermit wird eingeschaltet, das die Verzeichnislistings erzeugt werden sollen, wenn kein DirectoryIndex angegeben wurde
- ExecCGI bewirkt, das keine CGI-Skripte ausgeführt werden können
- FollowSymLinks erlaubt das verfolgen von symbolischen Links im Dateisystem
- IncludesNOEXEC bindet HTML-Dateien wie bei Server Side Includes (SSI) ein, das heißt entsprechende Direktiven werden ausgewertet
Die IndexOptions Direktive
- FancyIndexing bewirkt das Apache ein formatiertes Verzeichnislistingerzeugt, mit Icons, Größe, Datum, usw.
- FoldersFirst zeigt zuerst die Ordner an, dann die Dateien. Ansonten wird alphabetisch sortiert (egal ob Ordner oder Datei)
- +SuppressHTMLPreamble wird für `ReadmeName` und `HeaderName` benötigt. Wird es weggelassen, wird in den Dateien der Anfang der HTML-Datei erwartet
HeaderName
Die angegebene Datei wird (im aktuellen Verzeichnis gesucht) und falls sie gefunden wird anstelle des aktuellen Pfades in das Listing eingebunden. Wichtig ist,das entgegen der Apache-Dokumentation der volle Name der Datei angegeben werdenmuß. Ich konnte Apache nicht dazu bringen entweder HEADER, HEADER.txt, oder HEADER.html zu lesen, je nachdem, was vorhanden ist. Man muß hier auf jeden Fall den Dateinamen inkl. Extension angeben, sonst funktioniert es nicht.
ReadmeName
Diese Datei wird am Ende des Verzeichnislistings eingebunden, hier gilt das selbe wie für `HeaderName` gesagt wurde. Im Konfigurationsbeispiel wurde dem Dateinamen ein / vorran gestellt. Hierdurch wird immer die selbe Datei eingebunden, egal wo im Verzeichnisbaum man sich gerade befindet. Der dem Dateinamen vorrangestellte Pfad ist ab dem `DirectoryIndex` zu sehen.
