Пытаюсь использовать 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-адресов.