我想使用 保护整个服务器Require valid-user
,但我希望允许某些资源无需登录即可访问。为了便于讨论,假设文件A
、B
和C
应该是公开的。我已经使用以下配置测试了此要求:
<Location "/">
...
AuthType openid-connect
Require valid-user
</Location>
<Directory "/var/www/data">
Require all denied
<Files "A">
Allow from all
Satisfy Any
</Files>
<Files "B">
Require all granted
Satisfy Any
</Files>
<Files "C">
Require all granted
</Files>
</Directory>
对于此配置,A
并按B
预期工作(无需登录即可查看文件),但C
不起作用。
A
文件(带有allow
和)的配置satisfy
是受到推崇的根据 2.4 文档(“Satisfy 指令的另一个常见用途是放宽子目录的访问限制”)。
文件的配置B
显然与没有的配置相同allow
,但仍然需要satisfy
,因为文件的配置C
不起作用。
问题是satisfy
在 2.5 中已弃用,那么如何让它在 2.5 中工作?RequireAny
与不同,它仅在单个目录中工作,satisfy
因此似乎不是正确答案。我还没有测试过RequireAny
包含所有AuthType
、Require valid-user
和Require all granted
必须公开的资源的 - 一定有更好的方法。