Ich habe einen Ordner, zum Beispiel: /public_html/Davood/
Und zu viele Unterordner im Ordner, zum Beispiel: /public_html/Davood/Test1/
, /public_html/Davood/Test1/Test/
, /public_html/Davood/Test2/
, ...
Ich möchte eine htaccess-Datei in /public_html/Davood/
hinzufügen, um DirectoryListing in /Davood
und Unterordnern zu verweigern, ist es möglich?
Options -Indexes sollte funktionieren, um Verzeichnislisten zu verhindern.
Wenn Sie eine .htaccess-Datei verwenden, stellen Sie sicher, dass Sie mindestens die Einstellung "allowoverride-Optionen" in Ihrer Apache-Konfigurationsdatei haben.
Fügen Sie dies der .htaccess
-Datei in diesem Verzeichnis hinzu.
Options -Indexes
Dies hat mehr Informationen.
Wenn Options -Indexes
nicht wie von Bryan Drewery vorgeschlagen funktioniert, können Sie eine rekursive Methode zum Erstellen leerer index.php-Dateien schreiben.
Platzieren Sie diese in Ihrem Basisordner, den Sie schützen möchten. Sie können einen beliebigen Namen angeben (ich würde index.php empfehlen).
<?php
recurse(".");
function recurse($path){
foreach(scandir($path) as $o){
if($o != "." && $o != ".."){
$full = $path . "/" . $o;
if(is_dir($full)){
if(!file_exists($full . "/index.php")){
file_put_contents($full . "/index.php", "");
}
recurse($full);
}
}
}
}
?>
Diese leeren index.php-Dateien können einfach gelöscht oder überschrieben werden und verhindern, dass Ihre Verzeichnisse aufgelistet werden.
Um den verbotenen Fehler anzuzeigen, fügen Sie diese Zeilen in Ihre .htaccess-Datei ein:
Options -Indexes
Wenn wir unsere Dateien indizieren und mit einigen Informationen anzeigen möchten, verwenden Sie:
IndexOptions -FancyIndexing
Wenn wir möchten, dass eine bestimmte Erweiterung nicht angezeigt wird, dann:
IndexIgnore *.Zip *.css
Options -Indexes
Ich muss versuchen, .htaccess-Datei das aktuelle Verzeichnis zu erstellen, das ich Verzeichnisindexliste verbieten möchte. Tut mir leid, dass ich nichts über rekursive Informationen im .htaccess-Code weiß.
Versuch es.
Options -Indexes gibt einen nicht zulässigen 403-Fehler für ein geschütztes Verzeichnis zurück. Dasselbe Verhalten kann erreicht werden, indem Sie in htaccess die folgende Umleitung verwenden:
RedirectMatch 403 ^/folder/?$
Dies gibt einen verbotenen Fehler für example.com/folder/ zurück.
Sie können mod-rewrite auch verwenden, um eine Anforderung für Ordner zu verbieten.
RewriteEngine on
RewriteRule ^folder/?$ - [F]
Wenn sich Ihr Zugriff in dem Ordner befindet, den Sie verbieten möchten, ändern Sie das Muster von RewriteRule aus dem Ordner ^ Ordner /? $ in ^ $ .
Stimme dem zu
Options -Indexes
sollte funktionieren, wenn der Hauptserver so konfiguriert ist, dass er Optionsüberschreibungen zulässt. Wenn dies nicht der Fall ist, werden alle Dateien in der Liste ausgeblendet (sodass jedes Verzeichnis leer erscheint):
IndexIgnore *
Es gibt zwei Möglichkeiten:
mit .htaccess: Options -Indexes
erstellen Sie eine leere index.html