seria muito mais fácil simplesmente redirecionar as pessoas vindas dos IPs bloqueados para uma página de erro:
RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteRule .* /CustomError.html [R=403]
eu tenho
Na minha raiz da web /home/www/
, tenho um arquivo .htaccess
para proibir endereços 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
Eu também tentei desta forma com as declarações de erro:
ErrorDocument 500 /home/www/errors/500.htm
ErrorDocument 403 /home/www/errors/403.htm
Eu criei um diretório de erros, /home/www/errors
, que contém os seguintes arquivos:
403.htm
500.htm
.htaccess
No diretório de erros .htaccess
, defini as regras:
order deny,allow
allow from all
Se eu colocar meu IP no arquivo .htaccess raiz, não consigo navegar pelo site. Eu recebo um erro:
Forbidden - You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
No entanto, se eu navegar para /errors/500.htm, posso ver essa página no meu navegador, por isso sei que o subdiretório .htaccess
parece permitir que esses arquivos sejam carregados.
O que estou fazendo de errado? Como posso negar a partir de um determinado endereço IP, mas ainda mostrar uma página de erro personalizada com o Apache2?