Apache Webserver – Dateiliste ausgeben mit .htaccess und FancyIndexing

Wie aktiviere ich das Directory-Listing auf meinem Webserver mit .htaccess?

Standardmäßig erlaubt der Apache-Webserver keine Auflösung von Verzeichnisinhalten. Entweder wird die Standard-Datei, wie die “index.html” aufgerufen oder eine Fehlermeldung angezeigt.

Damit soll verhindert werden, dass man Zugriff auf beliebige Ordner erhält und den Inhalt einsehen kann. Manchmal ist dies jedoch erwünscht für einen Ordner, z.B. für die Bereitstellung von Downloads.

Videoanleitung

Anleitung

Index anzeigen

Mit einer .htaccess-Datei können wir das “DirectoryListing” jederzeit für einen Ordner und Unterordner aktivieren. Dazu legen wir eine .htaccess Datei mit folgendem Inhalt an:

Options +Indexes

Statt der Fehlermeldung erscheint nun der Verzeichnisindex:

Der Anwender kann nun Dateien anklicken und herunterladen.

Fancy Indexing

Funktional ist die Sache, aber schick ist es nicht, alle Dateien und Ordner werden als einfache Liste angezeigt. Besser geht es mit FancyIndexing:

Options +Indexes
IndexOptions FancyIndexing

Rufen wir erneut das Verzechnis auf, erscheinen nun nicht nur Icons, sondern auch weitere Informationen wie das Dateidatum und die Größe. Auch eine Sortierung ist möglich.

Aussehen von FancyIndexing anpassen

Die Darstellung lässt sich mittels Optionen anpassen:

  • IconHeight=[px] – Höhe des Icons
  • IconWidth=[px] – Breite des Icons
  • IconsAreLinks – Icons sind anklickbar
  • NameWidth=[N] – Spaltenbreite des Names, entweder eine Zahl oder * für Breite des längsten Dateinamens/li>
  • ScanHTMLTitles – Titel einer HTML-Datei als Beschreibung verwenden, Title-Tag wird ausgelesen
  • SuppressColumnSorting – Spaltensortierung deaktivieren
  • SuppressDescription – Beschreibungsspalte ausblenden
  • SuppressLastModified – Letzte Änderung ausblenden
  • SuppressSize – Dateigröße ausblenden
  • SuppressHTMLPreamble – HTML-Header unterbinden, z.B. bei eigenem Header
  • FoldersFirst – Verzeichnisse zuerst ausgeben
  • ShowHidden – versteckte Dateien anzeigen
  • HTMLTable – Listing in HTML-Tabelle ausgeben, z.B. für eigenes CSS

Ein Beispiel:

Options +Indexes
IndexOptions FancyIndexing
IndexOptions NameWidth=20 IconHeight=48 IconWidth=48 FoldersFirst SuppressDescription

Wir blenden Spalten aus, Ordner kommen an erster Stelle und vergrößern die Icons:

Eigene Icons verwenden

Wer mag, kann Dateien oder Ordnern eigene Icons verpassen, welche etwas schicker sind:

Options +Indexes
IndexOptions FancyIndexing
IndexOptions IconHeight=24 IconWidth=24
AddIcon icons/folder.png ^^DIRECTORY^^
AddIcon icons/word.png *.doc *.docx

Wir fügen eigene Icons für Ordner und Word-Dateien ein:

AddIcon icons/folder.png ^^DIRECTORY^^
AddIcon icons/word.png *.doc *.docx

Die Ansicht zeigt nun die Icons an.

Verzeichnisse ausblenden

Die Icons liegen im Ordner “icons”, soll der Benutzer darauf keinen Zugriff mehr haben, können wir den Ordner auch ausblenden.

IndexIgnore icons

Auch Dateien und Dateiendungen lassen sich filtern:

IndexIgnore icons *.docx *.pdf

Beschreibungen hinzufügen

Verzeichnisse und Dateien lassen sich auch mit einer Beschreibung versehen:

AddDescription "X-Akten" Unterverzeichnis
AddDescription "Stopp-Uhr für Windows" TimeTool.exe

Eigene Header und Footer

Das Design lässt sich mit einem eigenen Header, Footer oder CSS-Code erweitern. Wichtig ist, dass man bei den “IndexOptions” die Option “SuppressHTMLPreamble” setzt, welche die HTML-Ausgabe entsprechend anpasst.

IndexOptions SuppressHTMLPreamble
HeaderName icons/head.html
ReadmeName icons/foot.html

Die Dateien legen wir der Einfachheit halber in den Ordner “icons” mit ab. Der Inhalt ist HTML-Code für den Header und den Footer:

Fazit

Mit der Indexoption und FancyIndexing kann man sehr flexibel den Verzeichnisinhalt von Ordnern kontrollieren und das Design grafisch ansprechend aufbereiten. Viel Spaß beim Ausprobieren.

5 Kommentare

  1. Hallo,
    Der Beitrag ist ja schon älter und mittlerweile gibt es vielleicht Änderungen. Die htaccess funktioniert auf meinem VServer nicht, da kommt egal bei welcher Domain weiterhin der 403 Fehler. Hast Du eine Ahnung, woran das liegen könnte? Auf einem freien Webspace ausprobiert funktioniert die htaccess Datei so wie sie soll.
    Grüße

    1. An solchen Sachen ändert sich normalerweise so schnell nichts, d.h. es sollte weiterhin funktionieren. Je nach Serverkonfiguration musst Du allerdings einstellen, dass Du .htaccess Dateien bzw. die Konfiguration unterstützt. Ist das bei Dir der Fall?

      1. Mittels htaccess lief es jahrelang bis vor ein paar Wochen. Dann hat sich irgendwas geändert und ich suche noch, woran es liegt. Zu der Zeit gabs auch keine Änderungen am Server, er lief einfach wie gewohnt durch.
        Hast Du noch eine Idee, wo man da nachschauen müsste/könnte?

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert