2

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 看起来很正常......如果需要,我可以发布,但这个问题似乎足够长:)

感谢您提供的任何帮助

4

1 回答 1

1

解决。不知道我是怎么错过的,但在 DocumentRoot 的上一级目录中有一个 .htpasswd 和 .htaccess 文件。删除了这些,它工作正常。不知道为什么这很重要,因为它不在 DocumentRoot 中,而是在它之上一层……但是,这绝对是问题所在。

于 2012-10-03T15:35:22.910 回答