вторник, 5 февраля 2013 г.

Листинг каталогов и .htaccess


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

Если ввести в адресную строку браузера путь к папке, открывается индексный файл (например, index.html, index.php), который находится внутри этой папки, но если индексного файла в папке нет, а выдача листинга каталога не запрещена, появляется содержимое этой папки (каталога).
Исходный листинг содержимого папки test
Листинг содержимого папки test
Обычно это нежелательно, поэтому в каждую папку нужно помещать индексный файл, пусть даже пустой) или задать в файле .htaccess, который находится внутри папки или внутри родительской папки (например, в корневой папке сайта) , запрет выдачи листинга каталогов:
# запрет выдачи листинга
Options -Indexes
Запрет распространяется на все дочерние (вложенные) папки. Поэтому, если вы хотите показать листинг файлов в какой-то папке, в ней не должно быть индексных файлов и в нее нужно поместить файл .htaccess с разрешением вывода листинга содержимого этой папки (и всех вложенных):
# разрешение выдачи листинга
Options Indexes
При этом можно запретить показывать некоторые файлы, в том числе с использованием регулярных выражений, например:
# игнорировать файлы
IndexIgnore *.php myfile*
Здесь заданы файлы с расширением .php и начинающиеся с myfile (спецсимвол * заменяет любое количество символов).

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

Если есть желание показывать пользователям листинг файлов, выдаваемый сервером, желательно убрать из него служебную информацию и добавить стили. Добавим в файл .htaccess строчки
HeaderName HEADER.html
ReadmeName README.html
Содержимое файла HEADER.html будет выводиться перед листингом, а файла README.html - после листинга.
HEADER.html (имена этих файлов могут быть любыми):
<!DOCTYPE HTML><html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Листинг папки test</title></head>
<body bgcolor=#a8ecf8><h1>Файлы из папки test</h1></body></html>
README.html:
Вы можете скачать .doc-файлы и просмотреть остальные файлы
Вид листинга изменится так:
Измененный листинг
Измененный листинг
Это уже лучше, а возможности для дальнейших усовершенствований зависят от версии сервера Apache.
См. документацию: Apache Module mod_autoindex(Apache HTTP Server Version 2.2) и
Обсуждение на форуме
Всего просмотров 326, сегодня 3
Запись опубликована в рубрике htaccess с метками , . Добавьте в закладки постоянную ссылку.

Комментариев нет:

Отправить комментарий