Como restringir corretamente o acesso a algumas pastas via htaccess?

3

Eu tenho essa estrutura direta:

- www
    - folder1
        - folder2
            - folder21
            - folder22
            - folder23

Eu permiti que todos os arquivos de imagem fossem acessados

<FilesMatch \.(?i:gif|jpe?g|png)$>
    Order Deny,Allow
    Allow from all 
</FilesMatch>

Eu permiti que todos os arquivos em determinada pasta fossem acessados

<FilesMatch /folder2/folder22/.*>
    Order Deny,Allow
    Allow from all 
</FilesMatch>

Eu permiti que todos os arquivos robots.txt fossem acessados

<FilesMatch (robots\.txt)$>
    Order Deny,Allow
    Allow from all 
</FilesMatch>

E no final, adicionei a restrição de senha

AuthType Basic
AuthName "Personal use"
AuthUserFile /full/path/to/.htpasswd
Require valid-user

Mas quando tento acessar qualquer arquivo de imagem via navegador, recebo uma solicitação de senha. Alguém poderia explicar como corrigi-lo e qual poderia ser o problema. Obrigado.

    
por Eugene 08.08.2011 / 10:01

2 respostas

1

Order Deny,Allow significa que as regras deny são processadas antes das regras allow . Portanto, você receberá um aviso de senha.

Para pastas e tipos de arquivos que você deseja permitir, basta colocar a configuração abaixo em .htaccess :

<FilesMatch "\.(gif|jpe?g|png)$">
    Order Allow,Deny
    Allow from all 
    Satisfy Any
</FilesMatch>
    
por 08.08.2011 / 11:01
2

Você só precisa adicionar uma diretiva satisfy Any a cada um dos blocos FilesMatch .

<FilesMatch \.(?i:gif|jpe?g|png)$>
    Order Deny,Allow
    Allow from all
    Satisfy Any    
</FilesMatch>
    
por 08.08.2011 / 11:30