Apache 请求身份验证并根据不再位于 DocumentRoot 中的 .htaccess 文件中的说明查找 .htpasswd 文件时遇到问题。背景:
在我的 DocumentRoot 中,我之前从另一台机器复制了一个 .htaccess 和 .htpasswd 文件(以及所有其他网站文件)。
.htaccess 内容:
AuthType Basic
AuthName "Password is required"
AuthUserFile /some/directory/that/was/on/the/other/server/not/this/one/.htpasswd
Require valid-user
问题是:我将 .htaccess 和 .htpasswd 从 DocumentRoot 中移出,甚至重命名了文件。 DocumentRoot 中根本没有 .htaccess 文件。
但是,当我尝试从浏览器访问 localhost 时,系统会提示我输入登录名和密码。
当我输入登录名和密码(来自旧的、不在 DocumentRoot 中的 .hpasswd 文件)时,我收到 500 Internal Server 错误,并且日志显示:
[error] [client 127.0.0.1] (2)No such file or directory: Could not open password file: /some/directory/that/was/on/the/other/server/not/this/one/.htpasswd
这一直是个谜,因为DocumentRoot 中的任何地方都不再有 .htaccess 或 .htpasswd 文件了!!
尝试了几次 apache 重新启动,并尝试在 DocumentRoot 中使用空白的 .htaccess 文件。甚至 grep 整个机器的参考,AuthType Basic
看看我是否遗漏了什么。
httpd.conf 看起来很正常......如果需要,我可以发布,但这个问题似乎足够长:)
感谢您提供的任何帮助