403 erro de 403 ErrorDocument

1

Eu tenho o seguinte script de configuração na minha instalação do Apache 2.4.7:

<Directory "/www">
    Options Indexes FollowSymLinks
    AllowOverride All
    <RequireAll>
        Require all granted
        Require not ip ip.range.A ip.range.B
    </RequireAll>
    RewriteEngine On
    RewriteRule ^faq/(\w+)/(\d+)/?$ faq.php?code=$1&num=$2 [NC]
    ErrorDocument 403 /www/faq.php?code=web&num=403
</Directory>

Estou recebendo este erro quando tento visualizar uma página usando um dos endereços IP bloqueados:

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

Desde que eu quero servir dois tipos de 403 para os clientes de entrada; Eu tenho que redirecionar os usuários restritos pelos intervalos de IP A e B a serem mostrados na página faq/WEB/403/ .

Existe alguma maneira de bloquear o acesso de usuários com esses IPs e mostrar a eles minha ErrorDocument page personalizada?

Eu tentei usar o seguinte em vez da tag requireAll (conforme definido na% diretivaRewriteCond ):

RewriteCond %{REMOTE_HOST}  ^ip.range.A  [OR]
RewriteCond %{REMOTE_HOST}  ^ip.range.B
RewriteRule /faq/WEB/403/ [L,R]

mas sem sucesso. Os usuários puderam acessar as páginas livremente no último caso.

O arquivo de configuração atual é o seguinte (e nenhum usuário está sendo bloqueado para acessar as páginas da web):

<Directory "/www">
    Options Indexes FollowSymLinks
    AllowOverride All
    RewriteEngine On
    RewriteRule ^faq/(\w+)/(\d+)/?$ faq.php?code=$1&num=$2 [NC]
    RewriteCond %{REMOTE_HOST}  ^ip.range.A  [OR]
    RewriteCond %{REMOTE_HOST}  ^ip.range.B
    RewriteRule /faq/WEB/403/ [L,R]
</Directory>
    
por hjpotter92 05.03.2014 / 14:53

1 resposta

1

Para este erro:

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

Você está protegendo o diretório / www. Como o arquivo 403 também está nesse diretório, ele não é exibido, pois o acesso a esse conteúdo é proibido ao usuário. Você precisa colocar sua página 403 em seu próprio diretório que não pertence a / www.

Ao ter duas páginas separadas, dependendo do IP de origem, não tenho certeza se você pode fazer isso apenas com a configuração do apache. ErrorDocument são comandos "especiais" que interrompem o fluxo normal do apache. Uma maneira melhor seria fazer isso no PHP ou em qualquer linguagem do lado do servidor.

    
por 17.09.2014 / 15:29