.htaccess “Permitir de” e declaração adicional

1

Eu preciso criar algumas configurações de .htaccess e preciso de ajuda com isso. Minha versão do apache é 2.4. Rodando no Ubuntu.

A tarefa:

1) permite acesso ao teste-uri-1 para usuários autenticados e para usuários com endereço IP "branco";

2) permite acesso ao teste-uri-2 e teste-uri-3 somente para usuários autenticados;

3) permite acesso a todos os outros URIs sem restrições;

4) deve funcionar usando apenas o arquivo .htaccess na raiz do projeto web.

Meu primeiro exemplo de código:

SetEnvIf Request_URI ^test-uri-1$ require_auth=true
SetEnvIf Request_URI ^test-uri-2$ require_auth=true
SetEnvIf Request_URI ^test-uri-3$ require_auth=true
SetEnvIf Request_URI ^test-uri-2$ require_auth_force=true
SetEnvIf Request_URI ^test-uri-3$ require_auth_force=true
AuthType Basic
AuthName "Secure area"
AuthUserFile /wwwroot/.htpasswd
Order Deny,Allow
Deny from all
<If "-z reqenv('require_auth_force')">
    Allow from 1.2.3.4  4.3.2.1  1.1.1.1  2.2.2.2   
</If>
Satisfy any
Require valid-user
Allow from env=!require_auth

Esta solução não funciona. Como se viu, a condição IF poderia verificar EnvVar somente se fosse definida na configuração do servidor (mas eu posso usar apenas o arquivo .htaccess). Neste exemplo, a senha para o teste-uri-1 é sempre necessária. Mesmo que o usuário tenha um endereço IP "branco".

Meu segundo exemplo de código:

SetEnvIf Request_URI ^test-uri-1$ require_auth=true
SetEnvIf Request_URI ^test-uri-2$ require_auth=true
SetEnvIf Request_URI ^test-uri-3$ require_auth=true
AuthType Basic
AuthName "Secure area"
AuthUserFile /wwwroot/.htpasswd
Order Deny,Allow
Deny from all
<If "'%{REQUEST_URI}' = 'test-uri-1'">
    Allow from 1.2.3.4  4.3.2.1  1.1.1.1  2.2.2.2   
</If>
Satisfy any
Require valid-user
Allow from env=!require_auth

Esta solução não funciona também. E eu sei porque é assim. A senha é necessária para o teste-uri-1, mesmo que o usuário tenha um endereço IP "branco" também.

Você poderia me ajudar? Muito obrigado!

    
por Unibit 08.11.2017 / 22:21

0 respostas