我的 apache 2.4 vhost 配置如下:
<Directory />
Require all denied
</Directory>
<Directory /http/mystuff.org/html>
Options FollowSymLinks Indexes Includes
XBitHack on
Require all granted
</Directory>
<Directory /http/mystuff.org/html/secretstuff>
Options Indexes FollowSymLinks
AuthType Digest
AuthName "archives"
AuthUserFile /etc/httpd/private/secretstuff.htaccess
Require valid-user
</Directory>
该Require valid-user
指令被忽略(即任何人都可以访问 secretstuff 文件夹而无需进行身份验证),我不知道如何让它工作。我尝试Require all denied
在开头添加,尝试使用<Location>
而不是<Directory>
(stackexchange 上有人建议这样做),但似乎没有任何效果。我甚至尝试过
<RequireAll>
Require valid-user
</RequireAll>
我觉得这可能是因为Require all allowed
父目录中有,但这也没用。我已经通读了 apache 2.4 文档六遍了,但还是不明白为什么我要求有效用户的指令被忽略了。同样的配置在 apache 2.2 中工作正常。
最后,我相信我已经加载了所有必要的模块:
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authz_user_module modules/mod_authz_user.so
答案1
好的,上述配置有效。我之前在目录位置上打错了,之后页面就被缓存在浏览器中了。完全是新手错误。