是否可以嵌套基本身份验证?这样就可以使用一个基本的身份验证指令访问父文件夹和所有子文件夹,但子文件夹具有单独的身份验证
虚拟主机配置:
<VirtualHost *:80>
ServerName subdomain.domain.com
#
# Comment
#
ErrorLog "/var/log/httpd/analytics_prox_error_log"
CustomLog "/var/log/httpd/analytics_prox_access_log" common
SSLProxyEngine on
SSLProxyVerify none
ProxyRequests Off
<Location />
AuthType Basic
AuthName "ProxyMain"
AuthUserFile /var/www/analytics-auth/.htpasswd
Require user datateam
Satisfy any
Deny from all
Allow from 192.168.0.0/16 10.0.0.0/8
</Location>
<Location /folder1/>
AuthType Basic
AuthName "Proxy"
AuthUserFile /var/www/analytics-auth/.htpasswd
Require user mainuser folder1user
Satisfy any
Deny from all
Allow from 192.168.0.0/16 10.0.0.0/8
</Location>
<Location /anotherfolder/>
AuthType Basic
AuthName "Proxy"
AuthUserFile /var/www/analytics-auth/.htpasswd
Require user mainuser anotherfolderuser
Satisfy any
Deny from all
Allow from 192.168.0.0/16 10.0.0.0/8
</Location>
ProxyPass / https://1.1.1.1/
ProxyPassReverse / https://1.1.1.1/
</VirtualHost>
提示输入 / 的基本身份验证对于所有子文件夹都是相同的,并且可以正常工作。(AuthMain)但是,如果我浏览到指定的文件夹(例如 folder1),我将获得根基本身份验证,而不是特定于该位置的基本身份验证
从指令的文档中
<Location>
,第一个Location
指令也匹配所有其他路径。由于您使用的是 Apache 2.4,因此您应该能够对LocationMatch
. 伴随着一些东西应该管用。
这是由于 Location 中的文件夹周围缺少引号引起的。在它们周围添加双引号为我解决了这个问题。