webentwicklung-frage-antwort-db.com.de

verweigern Verzeichnisliste mit htaccess

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?

73
DJafari

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.

94
PPC-Coder

Fügen Sie dies der .htaccess-Datei in diesem Verzeichnis hinzu.

Options -Indexes

Dies hat mehr Informationen.

46
Bryan Drewery

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.

31
Cyclone

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
14
Vivek
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.

2
Jersey William

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 ^ $

1
starkeen

Options -Indexes funktioniert perfekt für mich,

hier ist .htaccess datei:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes <---- This Works for Me :)
    </IfModule>


   ....etc stuff

</IfModule>

Vor :  enter image description here

Nach dem : 

 enter image description here

0
Saurabh Mistry

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 *
0
dashrb

Es gibt zwei Möglichkeiten:

  1. mit .htaccess: Options -Indexes

  2. erstellen Sie eine leere index.html

0
Cakka