Назад | Перейти на главную страницу

Apache вносит в белый список одно местоположение, но требует базовой аутентификации для всего остального

Я уверен, что это просто, но сегодня утром Google мне не друг.

Цель:

/ public ... находится в открытом доступе

все остальное (включая /) требует базовой аутентификации.

Это приложение WSGI с одним сценарием WSGI (это сайт django, если это имеет значение ..)

У меня есть это:

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

В этой конфигурации базовая аутентификация работает нормально, но Location директива полностью игнорируется. Я не удивлен, так как по словам этот (см. Как объединяются разделы), Directory директива обрабатывается первой.

Я уверен, что мне что-то не хватает, но поскольку каталог применяется к местоположению файловой системы, а у меня действительно только один Directory в /, и это Location что я хочу разрешить доступ, но Directory всегда отменяет Location...

РЕДАКТИРОВАТЬ

Я использую Apache 2.2, который не поддерживает AuthType None.

Для Apache 2.0 установите AuthType None внутри вашего <Location /public> строфа:

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

http://httpd.apache.org/docs/trunk/mod/mod_authn_core.html#AuthType

Для Apache 2.2 (и, возможно, других из 2 серий старше 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>