apache24覆盖htaccess中的AuthName不起作用

尝试在.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访问的,则可以绕过它们。