Autenticação do Apache: permitir acesso público a um subdiretório

9

Este é provavelmente um problema simples, mas não consigo encontrar a solução na documentação.

Eu quero proteger meu site com senha usando a autenticação BASIC. Mas quero que um subdiretório não seja protegido:

http://mysite.com/ -> BASIC protected
http://mysite.com/somedir -> BASIC protected
http://mysite.com/someotherdir -> BASIC protected
http://mysite.com/public -> not protected

Não tenho problema em proteger todo o site, mas não sei como posso "desproteger" um diretório. O site está hospedado em um host compartilhado, então eu só tenho acesso aos arquivos .htaccess para fazer a configuração.

Existe uma diretiva para negar a autenticação?

Obrigado pela ajuda ...

    
por Guillaume 27.07.2009 / 18:22

4 respostas

5

Não deve ser um problema com o .htaccess, dependendo do que o host tenha permitido.

Você poderia tentar colocar um .htaccess na subpasta com o seguinte, embora as substituições precisem ser ativadas para os diretórios em que ele está.

 Allow From All
 Satisfy Any
    
por 27.07.2009 / 18:32
5

OK, para um caminho como server.com/private/public:

server.com/private/.htaccess

AuthType Basic
AuthName "Private, keep out."
Require...

server.com/private/public/.htaccess

Allow From All
Satisfy Any

A chave aqui é 'Satisfazer Qualquer', que ordena os requisitos de upstream juntos. 'Satisfazer Tudo' é o padrão.

    
por 29.07.2009 / 11:25
1

Eu acredito que isso possa ser feito:

# put the global auth stuff here
...

# put the override here
<Location /public>
Allow from All
Satisfy Any
</Location>
    
por 27.07.2009 / 18:29
0

Consegui resolver isso fazendo isso:

<Directory "/path/to/maindirectory">
[... auth stuff ... ]
</Directory>

<Directory "/path/to/mysubdirectory">
 Allow from All
 Satisfy Any
</Directory>

NÃO use os Locais, porque eles precisam diferenciar maiúsculas de minúsculas e não atuam no acesso real à pasta, mas apenas no URL.

Então, por exemplo, se eu escrever

http:/mywebsite/STUFF

ou

http://mywebsite/stuff

ou

http://mywebsite/StUfF

é diferente para o controle de localização, mesmo que o diretório físico chamado seja o mesmo !!!

Em suma, você verifica o acesso a "coisas" do diretório e eu posso escrevê-lo com um caso diferente.

Além disso, usar o arquivo .htaccess em um único diretório com controle de localização em outros não funcionou para mim.

Espero que ajude.

    
por 12.07.2016 / 17:51