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