web-dev-qa-db-fra.com

refuser la liste des répertoires avec htaccess

J'ai un dossier, par exemple: /public_html/Davood/.__ et trop de sous-dossiers dans ce dossier, par exemple: /public_html/Davood/Test1/, /public_html/Davood/Test1/Test/, /public_html/Davood/Test2/, ...

Je veux ajouter un fichier htaccess dans /public_html/Davood/ Pour refuser DirectoryListing In /Davood et sous-dossiers, c'est possible?

73
DJafari

Options -Indexes devrait empêcher les listes de répertoires.

Si vous utilisez un fichier .htaccess, assurez-vous d’avoir au moins le paramètre "allowoverride options" dans votre principal fichier de configuration Apache .

94
PPC-Coder

Essayez d'ajouter ceci au fichier .htaccess de ce répertoire.

Options -Indexes

This a plus d'informations.

46
Bryan Drewery

Si Options -Indexes ne fonctionne pas comme l'a suggéré Bryan Drewery, vous pouvez écrire une méthode récursive pour créer des fichiers index.php vides.

Placez ceci à l'intérieur du dossier de base que vous souhaitez protéger, vous pouvez le nommer comme vous le souhaitez (je recommanderais index.php)

<?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);
            }
        }
    }
}

?>

Ces fichiers index.php vierges peuvent être facilement supprimés ou écrasés et empêcheront vos répertoires d'être listés.

31
Cyclone

Pour afficher une erreur interdite, incluez ces lignes dans votre fichier .htaccess:

Options -Indexes 

Si nous voulons indexer nos fichiers et leur montrer des informations, utilisez:

IndexOptions -FancyIndexing

Si nous voulons qu'une extension particulière ne soit pas affichée, alors:

IndexIgnore *.Zip *.css
14
Vivek
Options -Indexes

Je dois essayer de créer le fichier .htaccess de ce répertoire actuel que je veux interdire la liste d'index de répertoire. Mais, désolé, je ne connais pas le code récursif en .htaccess.

Essayez-le.

2
Jersey William

Options -Indexes renvoie une erreur 403 interdite pour un répertoire protégé. Le même comportement peut être obtenu en utilisant la redirection suivante dans htaccess:

RedirectMatch 403 ^/folder/?$ 

Cela renverra une erreur interdite pour example.com/folder/ .

Vous pouvez également utiliser mod-rewrite pour interdire une demande de dossier.

RewriteEngine on

RewriteRule ^folder/?$ - [F]

Si votre htaccess est dans le dossier que vous allez interdire, remplacez le motif de RewriteRule par ^ dossier /? $ par ^ $

1
starkeen

Options -Indexes me convient parfaitement,

voici le fichier .htaccess:

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


   ....etc stuff

</IfModule>

Avant :  enter image description here

Après : 

 enter image description here

0
Saurabh Mistry

Accepter que

Options -Indexes

devrait fonctionner si le serveur principal est configuré pour autoriser les remplacements d’options, mais dans le cas contraire, tous les fichiers de la liste seront masqués (pour que chaque répertoire apparaisse vide):

IndexIgnore *
0
dashrb

Il y a deux manières:

  1. en utilisant .htaccess: Options -Indexes

  2. créer un index.html vide

0
Cakka