我在 /var/www/html 中有三个目录,其中一个目录具有以下内容:
Order Allow, Deny
Allow from all
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName 'lalalal'
AuthType Basic
Require user lala
当向该目录发送请求时,服务器返回 403 而不是 401。
当请求其他目录时,服务器返回 200。
同样有趣的是,当检查服务器信息页面时,没有一行引用受保护的目录,也没有它的同级目录。
编辑
错误日志显示:
“权限被拒绝:/var/www/html/drugi/.htaccess pcfg_openfile:无法检查 htaccess 文件,请确保其可读”
.htaccess 文件有 644 个权限。
答案1
Order Allow, Deny
Allow from all
如果您使用 HTTP 身份验证,则不需要这些,您可以摆脱它们。(并且如果逗号后有空格,则顺序会中断。
顺便说一句,最好将 htpasswd 文件保存在 Web 文档目录之外。
由于您已经用附加信息更新了您的问题,我想说您还应该检查目录中的权限,以ls -alZ
检查 Unix 权限和 SELinux 上下文。
答案2
403 表示存在权限错误。请检查用户apache
是否有权读取 .htaccess 文件,以及是否具有遍历 drugi 目录树的权限,因此该权限适用r-x
于其他人(如果它不属于 apache)或r-x
所有者/组(如果它属于 apache 或其组)。