У меня есть папка, например: /public_html/Davood/
и слишком много подпапок в папке, например: /public_html/Davood/Test1/
, /public_html/Davood/Test1/Test/
, /public_html/Davood/Test2/
,...
Я хочу добавить файл htaccess в /public_html/Davood/
Отказать DirectoryListing In /Davood
И подпапки, возможно ли?
Параметры -Indexes должны работать для предотвращения списков каталогов.
Если вы используете файл .htaccess, убедитесь, что у вас есть как минимум параметр "allowoverride" в главном файле конфигурации apache.
Попробуйте добавить это в файл .htaccess
в этом каталоге.
Options -Indexes
У этого есть дополнительная информация.
Если 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 могут быть легко удалены или перезаписаны, и они будут препятствовать тому, чтобы ваши каталоги были перечислимыми.
Options All -Indexes
не работает!
Для отображения Запрещенной ошибки включите эти строки в файл .htaccess:
Options -Indexes
Если мы хотим индексировать наши файлы и показывать их с некоторой информацией, используйте:
IndexOptions -FancyIndexing
Если мы хотим, чтобы какое-то конкретное расширение не отображалось, тогда:
IndexIgnore *.zip *.css
.httaccess
или .htaccess
?
Options -Indexes
Мне нужно попробовать создать файл .htaccess, в котором находится текущая директория, которую я хочу запретить. Но, извините, я не знаю о рекурсивном в .htaccess коде.
Попробуйте.
Существует два способа:
используя .htaccess: Options -Indexes
создать пустой index.html
Параметры -Indexes возвращает 403 запрещенную ошибку для защищенного каталога. Такое же поведение может быть достигнуто с помощью следующего перенаправления в htaccess:
RedirectMatch 403 ^/folder/?$
Это вернет запретную ошибку для example.com/folder/.
Вы также можете использовать mod-rewrite, чтобы запретить запрос для папки.
RewriteEngine on
RewriteRule ^folder/?$ - [F]
Если ваш htaccess находится в папке, которую вы собираетесь запретить, измените шаблон RewriteRule из ^ папки /? $ на ^ $.
Согласитесь, что
Options -Indexes
должен работать, если основной сервер настроен на разрешение переопределения параметра, но если нет, это скроет все файлы из списка (поэтому каждый каталог будет пустым):
IndexIgnore *
Options All -Indexes
не работает, как в нескольких ответах!AllowOverride All
, работает