A) Konfiguration des Apache-Servers anpassen

Mit Konfiguration ist die Konfiguration des Apache-Servers gemeint. Diese befindet sich meist in der Datei httpd.conf, welche im Verzeichnis des Apache zu finden ist. Bei Linux kann dies jedoch – je nach Distribution – abweichend sein. Diese alle aufzuzählen sprengt jedoch den Rahmen dieses Artikels. Also gehen wir davon aus, dass sich dies in der httpd.conf befindet.
(Der geübte Administrator wird die richtige Datei schnell finden)

In diese Datei wird folgender Code eingefügt:

1
2
3
4
5
<Directory "/var/www">
Options -Indexes
Order allow,deny
Allow from all
</Directory>

Damit ist das Directory-Listing für alle Unterverzeichnisse von /var/www abgeschalten. Soll dies nun für einzelne Verzeichnisse wieder aktiviert werden, weil ihr einen Download-Ordner habt, so kann auch dies mit einem weiteren Eintrag für jeden Ordner realisiert werden. (Beispiel für /var/www/domain/download)

1
2
3
4
5
<Directory "/var/www/domain/download">
Options +Indexes
Order allow,deny
Allow from all
</Directory>

B) Indexdateien erstellen

Hat man keinen Einfluss auf die Konfigurationsdateien des Server, weil die Seite zum Beispiel bei einem Hoster liegt, oder man traut sich nicht an diese Dateien, so hat man die Möglichkeit in den entsprechenden Verzeichnissen eine Index-Datei zu erstellen. Diese tragen im Allgemeinen den Namen index.php oder index.html und es spielt fast keine Rolle, für welche man sich entscheidet. Wichtig ist jedoch zu wissen, wenn man sich für die index.php entscheidet, sollte der Server auch in der Lage sein, PHP interpretieren zu können. Ist dies nicht der Fall, bleibt nur die index.html über.

In beiden Fällen reicht es jedoch aus, wenn die Dateien leer sind. Es muss als nicht drin stehen, was auch besser so ist, denn somit liegt der Verdacht nicht ganz so nahe, das hier nun eigentlich Dateien im Browser angezeigt werden. Der Browser selbst meldet sich dann mit einer komplett leeren – also weissen – Seite zurück.

Warum zeigt der Browser nun nichts an?
Nun, dies ist schnell erklärt. Durch die Serverkonfiguration sind Index-Dateien spezifiziert. Somit reicht es aus, wenn man nur das Verzeichnis angibt und es wird automatisch eine solche Index-Datei geladen. Ist diese nun leer, wird nichts angezeigt. Also auch keine Verzeichnisauflistung.

C) .htacces-Datei erstellen

Wem es nun viel zu viel Arbeit ist in jedem Verzeichnis, welches nicht aufgelistet werden soll, eine Index-Datei zu erstellen, der kann dies auch schnell mit nur einer Datei, der .htaccess erledigen. Diese legt man am besten im Root-Verzeichnis des Webservers ab. Also in dem Verzeichnis, in dem auch die index.php eurer Webseite ist. In diese .htaccess schreibt ihr folgenden Code hinein.

1
Options -Indexes

Soll dies nun für einzelne Verzeichnisse wieder aktiviert werden, weil ihr einen Download-Ordner habt, so kann auch dies mit einer weiteren .htaccess im betreffenden Order wieder eingeschaltet werden.

1
Options +Indexes

[info]Der Punkt [.] vor der .htaccess ist kein persönlicher Fetisch von mir, sondern erforderlich. Dies kommt aus der Linuxwelt und zeichnet somit eine „versteckte“ Datei aus.[/info]

Ich wünsche euch viel Erfolg und scheut euch nicht bei Fragen die Kommentare zu nutzen :-)

Artikel / Seite weiterempfehlen

5 Meinungen zu “Apache: Verzeichnisinhalte vom Webserver nicht anzeigen lassen

  1. Hallo H.-Peter
    Vielleicht kann ich noch eine Kleinigkeit ergänzen:
    Wer genau weiß das die automatische Verzeichnis-Anzeige auf dem eigenen Server nie benötigt wird, der könnte auch das entsprechende Modul „mod_autoindex“ einfach in der httpd.conf deaktivieren:

    1
    #LoadModule autoindex_module modules/mod_autoindex.so

    Der Server dürfte dann beim surfen auf ein Verzeichnis in dem es keine Index-Datei gibt eine 404-Meldung bringen.
    Also das kam mir gerade durch den Sinn als ich Deinen Artikel gelesen hab :-)

  2. Nur für den Fall, dass jemand wirklich einen Windows-Server im Einsatz hat: Dort heißt die Index-Datei oft „default.html“ bzw. „default.asp“ oder „default.php“.
    Die Reihenfolge in der die Index-Dateien aufgerufen werden, lässt sich festlegen (httpd.conf). Häufig sieht man hier die folgende Reihenfolge:

    index.htm
    index.html
    index.php
    index.php5
    und so weiter

    Somit sucht der Apache zuerst nach der htm-Datei. Findet er keine sucht er nach der html, gefolgt von der php usw.

Schreibe einen Kommentar

Ihre Email-Adresse wird nicht veröffentlicht. Pflichtfelder sind durch * markiert.

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>