Apache coloca uma lista de permissões em um único local, mas requer autenticação básica para todo o resto

2

Tenho certeza de que isso é simples, mas o Google não é meu amigo hoje de manhã.

O objetivo é:

/ public ... é abertamente acessível

todo o resto (incluindo /) requer autenticação básica.

Este é um aplicativo WSGI, com um único script WSGI (é um site django, se isso importa ...)

Eu tenho isso:

<Location /public>
  Order deny,allow
  Allow from all
</Location>
<Directory />
  AuthType Basic
  AuthName "My Test Server"
  AuthUserFile /path/to/.htpasswd
  Require valid-user
</Directory>

Com esta configuração, a autenticação básica funciona bem, mas a diretiva Location é totalmente ignorada. Não estou surpreso, pois de acordo com este (veja como as seções são mescladas), o Directory directiva é processada primeiro.

Tenho certeza de que estou perdendo algo, mas como o Directory se aplica a um local de sistema de arquivos, e realmente só tenho o Directory at / , e é um Location que desejo permitir acesso , mas Directory sempre substitui Location ...

EDITAR

Estou usando o Apache 2.2, que não suporta AuthType None .

    
por Chris Lawlor 25.02.2011 / 16:37

2 respostas

2

Para o Apache 2.2 (e provavelmente outros na série 2 anterior a 2.3):

<Location /public>
  Satisfy any
  Allow from all
</Location>
<Location />
  AuthType Basic
  AuthName "My Test Server"
  AuthUserFile /path/to/.htpasswd
  Require valid-user
</Location>
    
por 25.02.2011 / 23:23
2

Para o Apache 2.0, defina AuthType None na sua sub-rotina <Location /public> :

<Location /public>
  AuthType None
  Order deny,allow
  Allow from all
</Location>

link

    
por 25.02.2011 / 17:41