Apache - restringir o acesso a todas as pastas, exceto uma

2

Eu preciso restringir o acesso ao número x de pastas com uma senha, isso é o que eu tenho de trabalhar.

No entanto, agora preciso adicionar uma pasta chamada "pública", acessível sem senha. isso precisa estar no mesmo nível das outras pastas. Não consigo alterar o layout das pastas, pois isso danificaria os links existentes.

OSX 10.4.11 Apache 1.3.41

Aqui está minha configuração, até agora ela mostrará a raiz do site sem precisar de uma senha, mas ainda está pedindo senha para a pasta pública. Eu preferiria não usar arquivos .htaccess, mas se for minha única opção eu vou.

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/Library/WebServer/example.com/www/"
CustomLog "/var/log/httpd/access_log" "%h %l %u %t \"%r\" %>s %b"
ErrorLog "/var/log/httpd/error_log"
    <Directory "/Library/WebServer/example.com/www/">
            Options All +Indexes -ExecCGI +Includes +MultiViews
            AllowOverride None
            IndexOptions NameWidth=*
            Order Deny,Allow
            Allow from all                         
    </Directory>
    <Directory "/Library/WebServer/example.com/www/public/">
            Options All +Indexes -ExecCGI +Includes +MultiViews
            AllowOverride None
            IndexOptions NameWidth=*
            Order Deny,Allow
            Allow from all
    </Directory>
    <Directory "/Library/WebServer/example.com/www/*/">
            Options All +Indexes -ExecCGI +Includes +MultiViews
            AllowOverride None
            IndexOptions NameWidth=*
            AuthName "Restricted Area"
            AuthType Basic
            AuthUserFile /Library/WebServer/example.com/.htpasswd
            require valid-user
    </Directory>
</VirtualHost>

Estou ciente dos problemas com o AuthType Basic, também ciente dos problemas com a execução de uma versão muito antiga do Apache.

    
por Silverfire 30.08.2011 / 02:56

1 resposta

3

Adicione um Satisfazer qualquer ao final da sua diretiva Directory :

<Directory "/Library/WebServer/example.com/www/public/">
        Options All +Indexes -ExecCGI +Includes +MultiViews
        AllowOverride None
        IndexOptions NameWidth=*
        Order Deny,Allow
        Allow from all
        Satisfy Any
</Directory>

o cliente receberá acesso sem solicitar uma senha.

    
por 30.08.2011 / 04:10