RewriteCond não corresponde ao meu IP quando corresponde a% {REMOTE_ADDR} [duplicado]

1

Eu quero que uma regra mod_rewrite não seja executada quando o tráfego estiver atingindo o servidor web da rede interna. O servidor web é um apache 2.2 O seguinte RewriteCond serve para proteger a regra de reescrita.

        RewriteCond %{REMOTE_ADDR} !=192\.168\.[0-15]\.[1-255]

Se eu acessar o servidor da Web usando o ip 192.168.15.173, a regra não será acionada e, portanto, a regra de regravação será executada apesar do meu endereço interno. Onde está o meu erro?

Correspondência para o mais simples:

    RewriteCond %{REMOTE_ADDR} !=192\.168\.15\.173

também falha.

Eu usei o exemplo "Bloqueio de robôs" no link para criar a regra. Estou faltando alguma coisa?

Editar: eu já tentei investigar usando o registro de regravação, mas isso não trouxe nenhuma informação útil. É o que acontece durante a solicitação:

    192.168.15.173 - - [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (2) init rewrite engine with requested uri /test/
    192.168.15.173 - - [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (3) applying pattern '^/test/(.*)' to uri '/test/'
    192.168.15.173 - - [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (2) rewrite '/test/' -> 'https://example2.com/'
    192.168.15.173 - - [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (2) explicitly forcing redirect with https://example2.com/
    192.168.15.173 - - [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (1) escaping https://example2.com/ for redirect
    192.168.15.173 - - [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (1) redirect to https://example2.com/ [REDIRECT/302]

Eu nem vejo o RewriteCondition mencionado neste log.

Editar2: A versão do apache em detalhes é:

Name        : httpd
Arch        : x86_64
Version     : 2.2.15
Release     : 26.el6.centos
Size        : 2.9 M
Repo        : installed
From repo   : anaconda-CentOS-201303020151.x86_64

Edit3: Eu aumentei o LogLevel para 4 e agora obtenho mais resultados:

192.168.15.173 - - [12/Jun/2013:14:18:05 +0200] [example.com/sid#7f3c6afdfdb0][rid#7f3c6f880568/initial] (4) RewriteCond: input='192.168.15.173' pattern='!=192\.168\.15\.173' => matched

Por que isso combina?

Edit4: link diz-me que não deve corresponder ...

    
por noamik 12.06.2013 / 12:55

1 resposta

3

Eu encontrei a resposta para minha pergunta. A condição correta deveria ter sido:

RewriteCond %{REMOTE_ADDR} !192\.168\.[0-9]+\.[0-9]+
    
por 12.06.2013 / 14:34