29 April

Index aufhübschen

Der Apache Webserver kann automatisch einen Verzeichnisindex erstellen.
Erreichen kann man dies über die Options Direktive.
Dafür muss man der Option-Direktive nur den Parameter +Indexes anhängen. Dies kann in der httpd.conf, innerhalb eines Virtual Host Containers oder in der .htaccess Datei erfolgen.
Der Parameter -Indexes verhindert übrigens das anzeigen eines Index.
Leider sieht der vom Apache erzeugte Standardindex etwas langweilig aus:
Beispiel 1
Dank der IndexOptions Direktive lässt sich da leicht Abhilfe schaffen.
Alles was benötigt wird, sind ein paar Direktiven in der .htaccess (oder in der httpd.conf) und ein wenig CSS.

Beispiel 2
Die dazugehörige .htaccess Datei sieht so aus:
ServerSignature Off
AddType text/html .html
Options +Indexes
IndexOptions FancyIndexing
HeaderName /demos/indexing/2/HEADER.html
ReadmeName /demos/indexing/2/FOOTER.html
IndexIgnore FOOTER.html
IndexOptions SuppressHTMLPreamble
IndexOptions FoldersFirst
IndexOptions IconsAreLinks
IndexOptions ScanHTMLTitles
IndexOptions DescriptionWidth=*
AddDescription "Dieser Text steht hinter allen Textdateien" .txt
AddDescription "Dieses Bild hat seinen eigenen Text" nopicture.jpg
AddDescription "Alle anderen JPG Bilder bekommen diese Beschreibung verpasst" .jpg
Die Direktiven ServerSignature und AddType sind nicht unbedingt notwendig. Mit ServerSignature Off wird nur die normalerweise am unteren Seitenende eingeblendete Server Signatur abgeschaltet.
AddType text/html .html ist auf diesem Server hier notwendig, da sonst die Dateien HEADER.html und FOOTER.html nur als ASCII und nicht als HTML ausgegeben werden.
Beim Erstellen des Directory-Index erzeugt der Apache Webserver den kompletten HTML Code für die Seite selber. Das ist zwar praktisch, aber langweilig.
Durch die HeaderName und ReadmeName Direktiven bekommt der Apache die Anweisung die durch diese Direktiven bestimmte Dateien vor bzw. nach dem Directory-Listing anzufügen.
Dadurch bekommt man die Möglichkeit dem erzeugten Index mittels CSS ein angenehmeres Äusseres zu verpassen.
Normalerweise fügt der Apache diese Dateien nach einer selbsterzeugten HTML Preambel (<html>, <head>, usw.) an.
Mit dem Parameter SuppressHTMLPreamble wird der Apache angewiesen genau diese Preambel nicht mehr selber zu erzeugen, bzw. zu unterdrücken und stattdessen die aus den übergebenen Dateien zu nehmen.
IndexIgnore FOOTER.html sorgt nur dafür, dass die Datei, aus welcher der Footer erzeugt wird, nicht mit im Listing erscheint.
So aufgehübscht sieht der erzeugte Index schon viel moderner und angenehmer aus.

Wenn man möchte, kann man aber noch einen Schritt weiter gehen und wirklich fast alles abändern damit sich das Ganze besser in ein bestehendes Seitendesign einfügt:

Beispiel 3
In diesem Beispiel wurden sogar die wenig hübschen Standard-Icons des Apache gegen ein paar schönere ausgetauscht.
Durch ein wenig experimentieren kann man so sehr schöne Verzeichnis Indexe erzeugen lassen.

Alle verwendeten Direktiven zum nachlesen: Kleiner Hinweis am Rande: Die möglichen Parameter der IndexOptions Direktive variieren etwas zwischen den verschiedenen Apache Versionen, so kann der Apache ab Version 2.0.49 bei der Erzeugung des Index statt HTML 3.2 sogar XHTML 1.0 Code ausgeben.

tags: , ,

17:31:25 29.04.2005 Holger Struck - Kategorie: Tipps/Tricks

TrackBack

Trackback
There are currently no trackbacks for this item.
Use this TrackBack url to ping this item (right-click, copy link target). If your blog does not support Trackbacks you can manually add your trackback by using this form.

Kommentare

Paul:

Herrlich! Ewigkeiten habe ich schon nach dieser Lösung gesucht. Feed ist erstmal abonniert und ich freue mich auf viele weitere Tipps und Tricks.

Grüße, Paul
05.02.2008 16:11:43

Joe:

gibt es eine Möglichkeit anzugeben, dass alle jpegs nicht direkt angezeigt wird, sobald man sie anklickt, sonder dass ein download dialog kommt?
Thx
14.04.2008 09:33:07

host:

@Joe
Nicht das ich wüsste.
28.04.2008 10:31:40

Kommentar schreiben

:

:
:




Kommentar wird nach Überprüfung freigeschaltet