Desativa a autenticação básica do Apache no subdiretório virtual

2

Eu tenho um servidor que está completamente bloqueado com o Basic Auth

<Location />
    AuthType Basic
    # [...] rest of basic auth stuff
    require valid-user
    order deny,allow
    deny from all
    Satisfy any
</Location>

Um subdiretório é acessível sem autenticação:

<Location /public>
  allow from all
  Satisfy any
</Location>

Isso está funcionando bem. Agora eu quero permitir acesso sem login a alguns scripts que são acessados com mod_rewrite:

RewriteRule ^phonebook/show/(.+)$ /quicksearchShow.php?uid=$1 [NC]
RewriteRule ^phonebook/(.+)$ /quicksearch.php?s=$1 [NC]
RewriteRule ^phonebook$ /quicksearch.php [NC]

Algumas maneiras que eu tentei:

<Location ~ "/phonebook*">
    Allow from all
    Satisfy Any
</Location>

<Location /phonebook>
    Allow from all
    Satisfy Any
</Location>

<LocationMatch "^phonebook.*">
    Allow from all
    Satisfy Any
</LocationMatch>

Nenhuma dessas opções funciona. Eu assumo porque /phonebook não é um diretório real no servidor. Então eu tentei algumas variantes das diretivas <Files> :

<FilesMatch "/quicksearch.*">
    Allow from all
    Satisfy Any
</FilesMatch>

<FilesMatch "^quicksearch.*">
    Allow from all
    Satisfy Any
</FilesMatch>

<Files "quicksearch.php">
    Allow from all
    Satisfy Any
</Files>

Mas também não tem sorte.

Então, como eu defino opções para um diretório "virtual" específico que é mapeado via mod_rewrite?

    
por Gerald Schneider 04.03.2014 / 10:20

1 resposta

1

Então, eu meio que desisti dessa abordagem. Eu criei um subdiretório "agenda", movi os arquivos para lá e adicionei isso à configuração do apache:

<LocationMatch "^/(css|js|images|icons|phonebook)/">
    Order Deny,Allow
    Allow from All
    Satisfy Any
</LocationMatch>

Isso funciona, mas não consegui fazê-lo funcionar sem o diretório existente no sistema de arquivos.

    
por 05.03.2014 / 12:06