Apache nega acesso direto com exceção

1

Eu preciso negar o acesso direto a todas as pastas em um determinado diretório (* backend) com uma exceção. Existe um diretório (* uploads) que deve ser acessível através do navegador.

O layout pode ser algo assim:

*backend/     
  |-admin    
  |-system    
  |-themes    
  |-*uploads

Eu sei que você pode negar todo o acesso colocando um htaccess em backend com o seguinte:

Order Deny,Allow
Deny From All

Além disso, você pode substituir esse comportamento colocando um htaccess diferente, neste caso, em uploads , com:

Allow From All

Isso não está funcionando, já que os recursos em temas não estão acessíveis para meus scripts. Qual seria a combinação correta do htaccess ?

[EDITAR]

Eu tenho que conseguir isso com o htaccess, modificando o http.conf não é uma opção.

Modificando o htaccess como a seguir, e adicionando um arquivo aos temas, quase tem o resultado desejado. A questão é que: arquivos sob temas precisam ser protegidos contra o acesso direto, permanecendo disponíveis para serem veiculados ao site .

backend

#backend
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from xx.xx.xx.xx

uploads

#uploads
Order Deny,Allow
Allow from all

temas

#themes
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from xx.xx.xx.xx
<Files *.*>
    Order Deny,Allow
    Allow From All #Here, I would need the files to not be accessible through browser.
</Files>
    
por goliatone 04.12.2011 / 13:50

1 resposta

3

Tente isso no seu httpd.conf (ou arquivo de configuração semelhante)

<Location /backend>
    Order deny,allow
    deny from all
</Location>

<Location /backend/uploads>
    Order allow,deny
    allow from all
</Location>

Caso você precise acessar /backend do seu próprio servidor, você pode adicionar adicionalmente a seguinte linha no primeiro parágrafo acima, negando a todos.

allow from 127.0.0.1, <server-ext-ip>

Mais uma coisa. A ordem dos parágrafos é importante, apenas no caso.

    
por 04.12.2011 / 16:20