尝试在.htaccess文件中使用AuthName
来覆盖顶级configuration设置不起作用 – 服务器仍然发送configuration中设置的WWW-Authenticate:"Basic realm="...""
的值。 尽pipe启用了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:上面例子的真实世界版本是有一个共同的顶级“单点login”身份validation设置,然后把单行“需要有效的用户”等在htaccess文件。 这个冲突发生在一个子目录中,该子目录使用虚拟身份validation领域来实现基本身份validation的注销。
正如评论中build议的那样,您需要将AuthName
指令移出<Location>
容器并在<Directory>
容器中设置。
<Location>
容器和.htaccess
文件之后, <Location>
容器在请求中被处理得很晚。 所以这将覆盖您的.htaccess
文件。
另外,在处理文件系统部分的身份validation时,不应该使用<Location>
容器,因为如果资源是从多个URL访问的,则可以绕过它们。