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!