Список файлов вместо сайта

Обновлено: 04.07.2024

Вы, должно быть, знаете, что сервер Apache может выводить в браузер листинг (т.е. список) содержимого ваших папок на сервере? Обычно вывод листинга запрещают, но его также можно разрешить и использовать, например, если нужно предоставить посетителям сайта .doc-файлы для скачивания.

Индексный файл или запрет вывода листинга

Если ввести в адресную строку браузера путь к папке, открывается индексный файл (например, index.html, index.php), который находится внутри этой папки, но если индексного файла в папке нет, а выдача листинга каталога не запрещена, появляется содержимое этой папки (каталога).

Исходный листинг содержимого папки test

Листинг содержимого папки test

Обычно это нежелательно, поэтому в каждую папку нужно помещать индексный файл, пусть даже пустой) или задать в файле .htaccess, который находится внутри папки или внутри родительской папки (например, в корневой папке сайта) , запрет выдачи листинга каталогов:

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

При этом можно запретить показывать некоторые файлы, в том числе с использованием регулярных выражений, например:

Здесь заданы файлы с расширением .php и начинающиеся с myfile (спецсимвол * заменяет любое количество символов).

Изменение страницы листинга

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

Содержимое файла HEADER.html будет выводиться перед листингом, а файла README.html - после листинга.
HEADER.html (имена этих файлов могут быть любыми):

Вид листинга изменится так:

Измененный листинг

Листинг каталогов и .htaccess : 2 комментария

Читайте также: