Назад | Перейти на главную страницу

пользовательская ошибка apache2, когда каталог пуст

Обычно, когда в каталоге нет файла index.html, apache просто отображает страницу с надписью «Индекс / subdir» вверху и перечисляет все файлы. Как можно вместо этого отображать настраиваемую страницу ошибок? Желательно что-то, что я могу поместить в свой файл .htaccess

По умолчанию в вашей конфигурации apache будет строка конфигурации, такая как следующая:

DirectoryIndex index.html index.php index.cgi

Это определяет порядок, в котором эти файлы ищутся для представления содержимого каталога, когда этот каталог запрашивается без какой-либо части файла. Если он не найден и функция автоиндекса включена, вы получите список содержимого каталога.

Однако также можно определить абсолютный путь для DirectoryIndex, Такие как:

DirectoryIndex index.html /default/index.html

Теперь, если в каталоге нет index.html, будет использоваться содержимое /default/index.html (относительно DocumentRoot), что, как я считаю, именно то, что вы просите.

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

Вам следует полностью избегать использования файлов .htaccess если у вас есть доступ к файлу конфигурации главного сервера httpd. Использование файлов .htaccess замедляет работу вашего http-сервера Apache. Любую директиву, которую вы можете включить в файл .htaccess, лучше установить в блоке Directory, так как это будет иметь тот же эффект с лучшей производительностью.


Вы можете отключить генерация автоиндекса установив:

<Directory /var/www>
    Options -Indexes
</Directory> 

После этого посещение пустого каталога или каталогов без IndexDocument вызовет общую ошибку 403 Запрещено, а не список каталогов.

Затем вы можете настроить то, что отображается вместо этого, установив ErrorDocument

<Directory /var/www>
    Options -Indexes
    ErrorDocument 403 /errors/403.html
</Directory>