Эта тема на forum.dklab.ru


JET[ALPH]: Options -Indexes
Доброе время суток! Суть проблемы в следующем:

1) В корне сайта есть .htaccess в котором задан php auto_prepend_file (handler.php)
2) Пользователь обращается к каталогу http://myserver.com/dirname
3) handler.php проверяет, есть ли dirname в массиве запрещенных директорий, и если есть, то подключает err.html с сообщением об ошибке и завершает сценарий по die();

------------- Но вот где возникает проблема: если в этот самый dirname положить index.html (DirectoryIndex index.html) (пустой), то все работает нормально (так, как описано выше). Если index.html убрать, то выскакивает список всех лежащих в dirname файлов (происходит инексирование). Для корня сайта (в httpd.conf) стоит Option Indexes.

Как я пробовал решить эту проблему:
1) .htaccess для dirname: Options -Indexes. Как результат, 403 Forbidden
2) index.html в dirname: Работает, но не хочется в каждую такую папку пихать index.html файлы. Это не самое изщное решение.

Ну вообщем проблема то вся заключается видимо в том, что Apache сначала индексирует страницы, и только потом подключает auto_prepend_file, что не совсем логично. Можно ли как-то обойти этот момент, не прибегая к решению #2?

Спасибо за внимание!
after: Re: Options -Indexes

"]Apache сначала индексирует страницы, и только потом подключает auto_prepend_file, что не совсем логично.
Не совсем верно: auto_prepend_file - это опция PHP, и она выполняется PHP, а не Apache'м. Если в каталоге нет файла index.html, то до PHP вообще дело не доходит, а Apache строит листинг. Все вполне логично.

WingedFox:
JET[ALPH]:
Из всех виденных мной решений index.html в каждой папке - самое изящное.
Я пробовал оба способа - обработка 403-й ошибки менее удобна.
Дмитрий Котеров:
Вот как сделано на http://dklab.ru/chicken/web/dis/:

HeaderName /chicken/web/dis/HEADER.shtml
ReadmeName FOOTER.shtml

Может, эти директивы Вам пригодятся.

Эта тема на forum.dklab.ru