htaccess allow se não contém string

1

Estou tentando configurar um arquivo .htaccess que permitirá que os usuários ignorem o bloqueio de senha se vierem de um domínio que não comece com a visualização. por exemplo. O link acionaria a senha e o link não acionaria.

Aqui está o que eu tenho até agora:

SetEnvIfNoCase Host preview(.*\.)? preview_site
AuthUserFile /Users/me/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
AuthName "Development Area"
Require valid-user
Order deny,allow
Allow from 127
deny from env=preview_site
Satisfy any

Alguma idéia?

    
por Tom 29.04.2010 / 11:32

1 resposta

2

Você está quase lá, alguns pontos:

Seu regex, embora válido, também coincide com a visualização em algum outro lugar na URL (por exemplo, test.preview.example.com). As seguintes correspondências somente se o URL começar com "visualização".

SetEnvIfNoCase Host ^preview\. preview_site

A ordem precisa ser alterada para "Permitir, Negar", porque você deseja que o mod_access falhe quando as declarações Negar e Permitir corresponderem. Após o mod_access falhar, o mod_auth será chamado por causa do "Satify Any".

Portanto, isso deve fornecer o comportamento que você está procurando:

SetEnvIfNoCase Host ^preview\. preview_site
AuthUserFile /Users/me/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
AuthName "Development Area"
Require valid-user
Order Allow,Deny
Allow from All
Deny from env=preview_site
Satisfy Any
    
por 29.04.2010 / 15:43