запретить листинг каталогов с помощью htaccess
у меня есть папка, например : /public_html/Davood/
и слишком много вложенных папок в папке, например : /public_html/Davood/Test1/,/public_html/Davood/Test1/Test/,/public_html/Davood/Test2/ , ...
Я хочу добавить файл htaccess в /public_html/Davood/ запретить DirectoryListing в /Davood и подпапки, это возможно ?
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 с папку^/?$ до ^$ .
Comments