Директива Apache 2.0 ErrorDocument не работает при получении самого корневого каталога
Я отвечаю за сайт, использующий 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.
Есть ли способ получить корневой каталог сайта для работы с пользовательской страницей ошибок?
РЕДАКТИРОВАТЬ: Я думаю, что я, возможно, вызвал некоторую путаницу. Чтобы уточнить:
- когда я пытаюсь получить корневой 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 я получаю встроенное "Запрещено... у вас нет разрешения" для доступа к / х на этом сервере "страница.