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

apache24 переопределение AuthName в htaccess не работает

Пытаюсь использовать AuthName в файле .htaccess, чтобы переопределить настройку конфигурации верхнего уровня, не работает - сервер по-прежнему отправляет значение для WWW-Authenticate:"Basic realm="..."" это установлено в конфигурации. Это несмотря на то, что AllowOverride AuthConfig включен. Я что-то делаю не так, или я нашел ошибку?

httpd.conf:

<Directory "/www">
  AllowOverride AuthConfig
</Directory>

<Location />
  AuthName "config"
</Location>

/www/.htaccess

AuthType Basic
AuthName "htaccess"
AuthUserFile /dev/null
Require user nobody

PS: Реальная версия приведенного выше примера имеет общую настройку аутентификации «единого входа» верхнего уровня, а затем просто помещает одну строку «Требовать действительного пользователя» и тому подобное в файлах htaccess. Конфликт произошел с подкаталогом, который использует поддельную область аутентификации для выхода из системы для базовой аутентификации.

Как предложил ezra-s в комментариях, вам нужно переместить AuthName директива из <Location> контейнер и установить в <Directory> контейнер.

<Location> контейнеры обрабатываются намного позже в запросе, после <Directory> контейнеры и .htaccess файлы. Так что это будет иметь приоритет над вашим .htaccess файл.

Кроме того, вы не должны использовать <Location> контейнеры при работе с аутентификацией для частей файловой системы, поскольку их можно обойти, если доступ к ресурсам осуществляется с нескольких URL-адресов.