Apache-Optionen - Indizes für Unterverzeichnisse

Apache-Optionen - Indizes für Unterverzeichnisse

ProWie kann ich verhindern, dass Leute eine Dateiliste im übergeordneten Verzeichnis ansehen, wenn ich index.html nicht hochgeladen habe?Ich kann sehen, wie die Dateiauflistung deaktiviert werden kann, wenn keine index.*-Datei vorhanden ist.

Wie kann ich die Dateiliste für das Stammverzeichnis zulassen, nicht jedoch für andere Unterverzeichnisse?

Dank im Voraus.

Antwort1

Da Sie die Frage markiert haben , könnten Sie in der Stammdatei von Apache 2.4 .htaccessetwa Folgendes tun :.htaccess

# Default - Directory listings disabled (mod_autoindex)
Options -Indexes

# Override - Allow directory listings for the root only
<If "%{REQUEST_URI} == '/'">
    Options +Indexes
</If>

Antwort2

Normalerweise erben Unterverzeichnisse die gleichen Einstellungen, die Sie in Apache auf ihr übergeordnetes Verzeichnis anwenden. Und soweit ich weiß, können Sie das nicht ändern und es gibt keine Möglichkeit, den Umfang von Anweisungen auf nur eine einzige Verzeichnisebene zu beschränken.

Das bedeutet, dass Sie Folgendes tun müssen:

  • Setzen Sie die gewünschte Option/Anweisung im übergeordneten Verzeichnis
  • Ändern/überschreiben/negieren Sie diese Option/Direktive für alle (aktuellen und neuen) Unterverzeichnisse.

Anstatt dies für jedes Unterverzeichnis einzeln zu tun, ist es am einfachsten, dies mit demDirectoryMatchRichtlinie.

Legen Sie in Ihrer Haupt-httpd.conf (oder einem Include) fest

<Directory "/path/to/example.com/">
  # enable directory listings
  Options +Indexes
</Directory>


<DirectoryMatch "/path/to/example.com/.*/">
  # Disable directory listings for all sub directories of /path/to/example.com/
  Options -Indexes
</Directory>

(nicht getestet)

verwandte Informationen