Acho que você pode reduzir as regras para apenas:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !127\.0\.0\.1
RewriteCond %{QUERY_STRING} !action=optOut
RewriteRule index.php - [R=401]
Eu uso o Piwik para rastrear os visitantes do meu site. Por uma questão de "segurança", só permito o acesso a index.php
de alguns IPs conhecidos. Meu problema é que o snippet de exclusão do Piwik só está disponível por meio deste index.php
.
Eu tentei resolver isso por meio das diretivas RewriteRule
e Location
/ Files
, mas não posso permitir apenas o parâmetro de URL específico e deixar que outras pessoas neguem.
Para todas aquelas pessoas que não conhecem (muito) o Piwik, mas o Apache aqui, os pontos básicos:
index.php
, cujo acesso é limitado a IPs conhecidos. index.php
com um conjunto de parâmetros conhecidos: index.php?module=CoreAdminHome&action=optOut&lang=DE
O que eu quero é:
index.php
de todos os IPs desconhecidos, mas IPs conhecidos. (feito) index.php
de todos os IPs. (pendente) Como permitir somente URLs com parâmetros específicos no Apache?
Eu tentei:
Order allow,deny
Allow from all
<Files "index.php">
Order allow,deny
Deny from all
Allow from 127.0.0.1
</Files>
RewriteEngine On
RewriteRule ^/piwik-opt-out.html$ index.php?module=CoreAdminHome&action=optOut [L]
<Location "/piwik-opt-out.html">
Order allow,deny
Allow from all
</Location>
Tags apache-2.2 piwik