Tentando entender este conjunto de regras de reconfiguração do Apache2

1

Eu tenho as seguintes regras do Apache2 Rewrite e estou tentando decifrar o significado por trás delas:

1. RewriteEngine on
2. RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4
3. RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png)$
4. RewriteCond %{DOCUMENT_ROOT}/../tmp/stop.txt -f
5. RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
6. RewriteRule ^(.*)$ /$1 [R=503,L]
  1. Ativar RewriteEngine
  2. Se o endereço solicitado não for do IP 1.2.3.4
  3. Se o URI solicitado não contiver um recurso, ele será encerrado em .css ou .gif ou .jpg ou .png
  4. Se o URI estiver solicitando ../tmp/stop.txt (e que é um arquivo)
  5. Se o caminho solicitado não for um arquivo normal
  6. SE qualquer regra da regra 2,3,4,5 for verdadeira, exibir a página de status 503?

Estou perto?

Obrigado

    
por Bill 11.04.2014 / 03:00

2 respostas

2

Você está muito perto:

  • Etapa 2: não é o endereço solicitado, é o endereço do cliente (o endereço IP do host que faz a solicitação): se o endereço do cliente não for 1.2.3.4

  • Passo 4: como mencionado por @Florin Asavoaie: isso apenas verifica se o arquivo ../tmp/stop.txt existe, não importa se foi solicitado ou não.

  • Etapa 5: se o arquivo solicitado não existir

  • Etapa 6: é AND e não OR (todas as regras precisam corresponder). Então:

    if (rule 2 is true) AND (rule 3 is true) AND (rule 4 is true) AND (rule 5 is true)
    {  
       Then return 503 - Service Temporarily Unavailable (which works)
    }
    
por 11.04.2014 / 04:00
0

Na etapa 4, ele deve apenas verificar se esse arquivo existe ou não, independentemente de ter sido solicitado ou não.

Você realmente testou isso? Não tenho certeza se você pode fazer um "redirecionamento" com um código diferente de 3XX.

    
por 11.04.2014 / 03:03