Como posso negar a partir de um determinado endereço IP, mas ainda mostrar uma página de erro personalizada com o Apache2?

2

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?

    
por cwd 01.11.2012 / 15:36

1 resposta

1

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]
    
por 01.11.2012 / 15:41