Apache2 com autenticação básica: exclui um local da autenticação (comportamento estranho)

1

Tenho autenticação básica definida para Directory / e quero excluir Location / assets / upload, mas isso simplesmente não funciona, tentei várias opções e tutoriais.

Esta diretiva Location limpa a configuração de autenticação do diretório e desativa a autenticação básica de todo o site :

<Directory "/">
    AuthType Basic
    AuthName "Staging"
    AuthUserFile /var/.../.htpasswd
    AuthGroupFile /dev/null
    Require valid-user
</Directory>

<Location "/">
    Order deny,allow
    Allow from all
    Satisfy any
</Location>

No entanto, desejo apenas que / assets / upload não tenha autenticação básica, mas se alterar o 1º parâmetro de Location para / assets / upload, a página inteira , incluindo / assets / upload será protegido por autenticação básica ...

<Location "/assets/upload">
    Order deny,allow
    Allow from all
    Satisfy any
</Location>

O que poderia estar errado aqui?

Versão: Apache / 2.2.16 (Debian)

    
por mrtn. 06.02.2013 / 00:55

2 respostas

3

Eu tenho medo que você tenha entendido mal alguns conceitos do Apache aqui. O argumento em um bloco <Directory> é um caminho completo do sistema de arquivos, não um relativo à raiz do servidor. Você deve nunca realmente alterar o bloco <Directory /> do padrão. Você não precisa alterá-lo para que sua configuração funcione.

O argumento para um bloco <Location> é relativo à raiz do servidor. Então você só precisa de dois desses blocos para conseguir o que deseja.

<Location "/assets/upload">
    Order deny,allow
    Allow from all
    Satisfy any
</Location>

<Location "/">
    AuthType Basic
    AuthName "Staging"
    AuthUserFile /var/.../.htpasswd
    AuthGroupFile /dev/null
    Require valid-user
</Location>

Você deve ter um único bloco <Directory /> no contexto global / servidor (ou seja, não dentro de qualquer vhost) e deve ser algo assim.

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Deny from all
</Directory>
    
por 15.09.2016 / 08:40
1

No diretório / assets / upload, coloque outro arquivo .htaccess com esses conteúdos;

Allow from all
Satisfy any

Isso substituirá as configurações mais gerais do arquivo no diretório acima dele e exibirá os recursos sem exigir autorização.

    
por 06.02.2013 / 01:05