“Exigir não ip” .htaccess não funciona em um único ip

“Exigir não ip” .htaccess não funciona em um único ip

Estou tendo problemas para bloquear um IP em .htaccess

eu coloquei

Require not ip 192.168.20.218

Funciona, mas bloqueia toda a rede em vez de bloquear um único IP.

Alguém pode resolver esse problema?

Estou executando no Apache 2.4 usando Ubuntu 14.04.3 LTS

ATUALIZAR:cenário é assim, estou usando IP 192.168.20.218no meu computador, estou tentando fazer um teste para bloquear esse endereço IP, tentei:

<RequireAll> 
Require all granted 
Require not ip 192.168.20.218 
</RequireAll>

O que deveria bloquear meu acesso, mas ainda me permite acessar a página. Se eu tirar, Require all grantedele bloqueará toda a rede.

Responder1

Você não pode usar umnegadodirectiva por si só para autorizar o acesso. Como observado ema documentação:

O resultado da Requiredirectiva pode ser negado através da utilização da notopção. Tal como acontece com a outra diretiva de autorização negada <RequireNone>,quando a Requirediretiva é negada, ela só pode falhar ou retornar um resultado neutro e, portanto, nunca poderá autorizar independentemente uma solicitação.

Você precisaria fazer algo como o seguinte:

<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>

Assim, você permite todos e exclui um endereço IP específico.

O <RequireAll>contêiner, como o próprio nome sugere, exige que todas as diretivas contidas sejam atendidas.

Responder2

Eu tive esse problema. Esqueci que tinha um proxy reverso nginx instalado. O IP que entrou no Apache foi o IP do proxy reverso do nginx. Em vez disso, tive que definir um cabeçalho personalizado no proxy reverso contendo o IP verdadeiro e, em seguida, verificar esse cabeçalho em .htaccess em vez de verificar o IP.

informação relacionada