
Я отвечаю за сайт, использующий Apache 2.0 на Red Hat 4.1.2.
Я настроил сайт на отображение пользовательской страницы ошибок, добавив эту строку в файл .htaccess в корневом каталоге сайта:
ErrorDocument 403 /403.html
Для тестирования я заблокировал свой собственный IP-адрес в приложении сайта; в результате в файле .htaccess появилось что-то вроде этого (я отредактировал список для краткости и изменил IP-адреса):
SetEnvIfNoCase REMOTE_ADDR "^(0\.0\.0\.1|0\.0\.0\.2|0\.0\.0\.3).*" BadIP
deny from env=BadIP
Когда я пытаюсь зайти на сайт с «плохого» IP-адреса, я получаю пользовательскую страницу с ошибкой, если я пытаюсь получить доступ к определенной странице (например,http://example.com/index.html).
Однако, если я попытаюсь получить только корневой каталог (например,http://example.com), то вместо этого я получаю тестовую страницу Apache.
Есть ли способ заставить корневой каталог сайта работать с пользовательской страницей ошибок?
EDIT: Думаю, я мог вызвать некоторую путаницу. Чтобы прояснить:
- когда я пытаюсь получить корневой URL, корневая страницанетобслужен; я получаю страницу с сообщением: «Если вы можете прочитать эту страницу, это значит, что HTTP-сервер Apache, установленный на этом сайте, работает правильно». Итак, я заблокирован, как и ожидалось, но я просто не получаю страницу с ошибкой 403.
- когда я пытаюсь получить что-либо ниже корня, я получаю свою собственную страницу 403.html
ОБНОВЛЯТЬ:
Я пробовал это на более поздней версии Apache (2.2.25). Я также пробовал этобездиректива ErrorDocument или SetEnv. Файл .htaccess содержиттолькоэти 3 строки:
order allow,deny
allow from all
deny from 0.0.0.0
где 0.0.0.0 заменяется на мой реальный IP-адрес.
Результат тот же: при получении example.com я получаю тестовую страницу Apache «Если вы можете это прочитать», а при получении example.com/x я получаю встроенную страницу «Запрещено ... у вас нет прав доступа к /x на этом сервере».