Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

Параметры -Indexes должны работать для предотвращения списков каталогов.

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

Ответ 2

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

Options -Indexes

У этого есть дополнительная информация.

Ответ 3

Если Options -Indexes не работает, как предложил Брайан Дрюэрри, вы можете написать рекурсивный метод для создания пустых файлов index.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);
            }
        }
    }
}

?>

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

Ответ 4

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

Options -Indexes 

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

IndexOptions -FancyIndexing

Если мы хотим, чтобы какое-то конкретное расширение не отображалось, тогда:

IndexIgnore *.zip *.css

Ответ 5

Options -Indexes

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

Попробуйте.

Ответ 6

Согласитесь, что

Options -Indexes

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

IndexIgnore *

Ответ 7

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

RedirectMatch 403 ^/folder/?$ 

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

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

RewriteEngine on

RewriteRule ^folder/?$ - [F]

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

Ответ 8

Существует два способа:

  • используя .htaccess: Options -Indexes

  • создать пустой index.html