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

Как я могу отклонить запрос с определенного IP-адреса, но по-прежнему отображать настраиваемую страницу ошибки с Apache2?

У меня в корневом каталоге /home/www/ у меня есть .htaccess файл для запрета IP-адресов:

order allow,deny
deny from 1.2.3.4
deny from 2.3.4.5
allow from all

ErrorDocument 500 /errors/500.htm
ErrorDocument 403 /errors/403.htm

Я также пробовал это с сообщениями об ошибках:

ErrorDocument 500 /home/www/errors/500.htm
ErrorDocument 403 /home/www/errors/403.htm

Я создал каталог ошибок, /home/www/errors который содержит следующие файлы:

403.htm
500.htm
.htaccess

В каталоге ошибок .htaccess Я установил правила:

order deny,allow
allow from all

Если я помещу свой IP в корневой файл .htaccess, я не смогу просматривать сайт. Я получаю сообщение об ошибке:

Запрещено - у вас нет разрешения на доступ к этому серверу.

Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 403 Forbidden.

Однако, если я перейду к /errors/500.htm, я увижу эту страницу в своем браузере, поэтому я знаю подкаталог .htaccess похоже, позволяет загружать эти файлы.

Что я делаю не так? Как я могу отклонить запрос с определенного IP-адреса, но по-прежнему отображать настраиваемую страницу ошибки с Apache2?

Было бы намного проще просто перенаправить людей, переходящих с заблокированных IP-адресов, на страницу с ошибкой:

RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteRule .* /CustomError.html [R=403]