Restringir o acesso ao apache2 web root, mas permitir que ele seja subpastas

2

Eu preciso restringir o acesso por senha ao meu servidor de testes do Apache da Web raiz (ou seja, link ), mas permitir acesso a subpastas (ou seja: link )

Eu criei o .htpasswd e o .htaccess, e coloquei o .htaccess no web root (http: // localhost), então ao tentar acessar o web root, ele pede por user e pass, mas o mesmo acontece em subpastas (ie : tentando acessar o link )

Eu quero ser perguntado por senha no web root, mas não em subpastas.

Isso é possível?

    
por razor7 30.03.2012 / 01:11

1 resposta

5

parece que você disse ao Apache para requerer uma senha para sua web-root, mas você usou o Apache para não requerer para todos os outros diretórios?

Dentro do seu .htaccess (ou no httpd.conf, eles fazem o mesmo trabalho) você provavelmente tem algo parecido com o que está abaixo (adicione um link pastebin ao seu arquivo .htaccess e eu posso fazer isso exatamente):

<Directory "/www/private">
   Order allow,deny
   Allow from all

   Options Indexes
   AuthType Basic
   AuthName "Private Access"
   AuthUserFile "/www/private/.htpasswd"
   Require valid-user
</Directory>

Mas isso também se aplica a todos os diretórios nesse caminho. Você precisará informar explicitamente ao Apache o contrário.

<Directory "/var/private/subdir">
    Satisfy any
</Directory>

Você pode usar expressões regulares com <DirectoryMatch "regex"> para generalizar isso, apenas não se esqueça de proteger contra asdf.com/subdir/../ expressões.

ATUALIZAÇÃO: Também vale a pena mencionar que, embora grande parte da documentação já tenha <Directory[Match]> diretivas, também há <Location[Match]> diretivas que são úteis no caso de links simbólicos no sistema de arquivos subjacente.

    
por Huckle 30.03.2012 / 03:14