Für ein Verzeichnis, welches nicht über eine Datei „index.html“ oder „index.php“ verfügt, liefert der Apache-Webserver in der Regel eine Fehlermeldung. Unter Umständen ist dies jedoch nicht der Fall, was dazu führt, dass der Server den Verzeichnisinhalt anzeigt. Bei öffentlichen Servern ist dies ungewünscht und recht ärgerlich. Glücklicherweise existieren drei simple Wege, das Anzeigen des Verzeichnisses, im Englischen „Directory Listing“, zu verhindern.
Weg Nr. 1: Die Konfiguration des Apache-Webservers anpassen
Über die Konfiguration des Apache-Webservers ist das Abstellen des Verzeichnis-Listings sehr einfach. Die Konfiguration ist in der Regel in der Datei „httpd.conf“ zu finden. Bei Linux kann die Bezeichnung der Datei abweichen – als Administrator solltest du den Namen deiner Konfigurationsdatei jedoch kennen und sie entsprechend schnell finden können.
In die Datei muss der folgende Code eingefügt werden:
<directory "/var/www">
Options -Indexes
Order allow,deny
Allow from all
</directory>
Durch das Minus vor „Indexes“ wird der Zugriff auf alle Unterverzeichnisse von /var/www verwehrt. Dementsprechend ist es durchaus möglich, dass der Code sich bereits ohne das Minus in der Datei befindet – in diesem Falle muss nur das Minuszeichen ergänzt werden.
Bietest du beispielsweise einen Downloadordner an oder möchtest aus anderen Gründen den Zugriff auf ein bestimmtes Verzeichnis erlauben wollen, lässt sich dies auf einfachem Wege bewerkstelligen:
<directory "/var/www/domain/verzeichnisname">
Options +Indexes
Order allow,deny
Allow from all
</directory>
Das genannte Verzeichnis darf nun aufgerufen werden. Es ist wichtig, in diesem Falle beide Codes in die Datei einzufügen.
Weg Nr. 2: Indexdateien erstellen
Liegen die Dateien bei einem Hoster, hast du in aller Regel keinen Zugriff auf die Konfigurationen. In diesem Falle bleibt dir die Möglichkeit, Indexdateien anzulegen. Hierfür erstellst du einfach eine Datei mit dem Namen „index.html“ oder „index.php“. Entscheidest du dich für letztere Variante, solltest du darauf achten, dass dein Server php-fähig ist – heutzutage ist dies beinahe immer der Fall.
Die Dateien müssen nicht über Inhalte verfügen. Erstellst du eine leere Datei, wird dein Browser beim Aufruf eine weiße Seite anzeigen. Somit wird keine Auflistung der Verzeichnisse mehr ausgegeben.
Der Browser gibt beim Aufruf des Verzeichnisses die Index-Datei aus, da diese durch die Serverkonfiguration eine Sonderstellung erhalten. Existiert eine Index-Datei, wird beim Aufruf des Verzeichnisses immer automatisch diese geladen.
Weg Nr. 3: Eine .htaccess-Datei erstellen
Arbeits- und zeitsparend ist das Anlegen einer .htaccess-Datei. Diese sollte im Root-Verzeichnis des Webservers, in dem auch Index-Dateien angelegt werden, erstellt werden. Mit dem Eintrag „Options -Indexes“ schaltest du die Auflistung der Verzeichnisse ab. Willst du einzelne Verzeichnisse freigeben, musst du im betreffenden Ordner eine weitere .htaccess-Datei mit dem Inhalt „Options +Indexes“ anlegen.
Der Punkt vor „htaccess“ ist von großer Bedeutung, da dieser angibt, dass es sich um eine versteckte Datei handelt.