我有由 Apache 支持的 Passenger。我尝试有选择地对我的 URL 进行摘要式身份验证。我有以下场景。
- 位置 / 需要在领域 Foo 下进行摘要认证
- 位置 /a 不需要验证
- 位置 /a/b 需要在领域 Bar 下进行摘要认证
这是我的配置(或多或少):
<Location />
AuthName Foo
AuthType Digest
AuthDigestDomain /
AuthUserFile /etc/apache2/foo_digest.users
require valid-user
</Location>
<Location /a >
Allow from all
Satisfy Any
</Location>
<Location /a/b >
AuthName Bar
AuthType Digest
AuthDigestDomain /a/b
AuthUserFile /etc/apache2/bar_digest.users
require valid-user
<Location>
结果如下:
- 位置 / 正在接受摘要身份验证 Foo
- 位置 /a 未接受任何身份验证
- 位置 /a/b 也未接受任何身份验证
我对此还很陌生。我做错了什么?
答案1
在<Location /a/b>
块中,您需要Satisfy All
切换回该位置的默认行为,否则它将使用 from Satisfy Any
,<Location /a>
允许所有与基于主机的Allow
/Deny
指令匹配的主机。