запретить листинг каталогов с помощью htaccess



у меня есть папка, например : /public_html/Davood/
и слишком много вложенных папок в папке, например : /public_html/Davood/Test1/,/public_html/Davood/Test1/Test/,/public_html/Davood/Test2/ , ...



Я хочу добавить файл htaccess в /public_html/Davood/ запретить DirectoryListing в /Davood и подпапки, это возможно ?

681   8  

8 ответов:

Параметры -Индексы должен работать, чтобы предотвратить списки каталогов.

Если вы используете a .файл htaccess убедитесь, что у вас есть хотя бы параметр" allowoverride options " в главном конфигурационный файл apache.

попробуйте добавить это .htaccess файл в этом каталоге.

Options -Indexes

этой более подробную информацию.

Если Options -Indexes не работает, как предложил Брайан Дрюери, вы можете написать рекурсивный метод для создания пустого индекса.PHP-файл.

поместите это внутри вашей базовой папки, которую вы хотите защитить, Вы можете назвать ее как угодно (я бы рекомендовал 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);
            }
        }
    }
}

?>

эти пустые индекса.php файлы могут быть легко удалены или перезаписаны, и они будут держать ваши каталоги из списка.

для показа запрещенной ошибки затем включите эти строки в свой .файл htaccess:

Options -Indexes 

Если мы хотим индексировать наши файлы и показывать их с некоторой информацией, то используйте:

IndexOptions -FancyIndexing

Если мы хотим, чтобы какое-то конкретное расширение не показывалось, то:

IndexIgnore *.zip *.css
Options -Indexes

Я должен попробовать создать .htaccess файл, что текущий каталог, который я хочу запретить каталог индексирования списка. Но, извините, я не знаю о рекурсивном in .код htaccess.

попробовать его.

согласен, что

Options -Indexes

должно работать, если основной сервер настроен на разрешение переопределений параметров, но если нет, это скроет все файлы из списка (поэтому каждый каталог выглядит пустым):

IndexIgnore *

Параметры -Индексы возвращает ошибку 403 forbidden для защищенного каталога. То же самое поведение может быть достигнуто с помощью следующего перенаправления в htaccess :

RedirectMatch 403 ^/folder/?$ 

это вернет запрещенную ошибку для example.com/folder/ .

вы также можете использовать mod-rewrite, чтобы запретить запрос на папку.

RewriteEngine on

RewriteRule ^folder/?$ - [F]

Если ваш htaccess находится в папке, которую вы собираетесь запретить, измените шаблон RewriteRule с папку^/?$ до ^$ .

есть два пути :

  1. использование .htaccess:Options -Indexes

  2. создать пустой индекс.HTML-код

Comments

    Ничего не найдено.