Как я могу отказать с определенного 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?
1 ответ
Было бы намного проще просто перенаправить людей, пришедших с заблокированных IP-адресов, на страницу с ошибкой:
RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteRule .* /CustomError.html [R=403]