2

我正在使用 htaccess 和 htpasswd 保护一个 html 文件。当我尝试访问它时,输入用户名和密码后,而不是加载“index.html”文件,我得到“500 - 内部服务器错误”

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile home/folder/index.html/.htpasswd 
AuthGroupFile /dev/null 
require valid-user

有什么建议么?也许与托管服务有关?

4

3 回答 3

5

首先,查阅错误日志(通常位于 中/var/log/apache2/error.log)以查看错误的确切原因。

如果您无权访问它,请检查以下内容:

  • 服务器是否支持这种技术?(询问您的提供商或管理员)
  • AuthUserFile正确的吗?它似乎缺少一个斜线,并且目录不寻常。我会怀疑类似的东西AuthUserFile /home/webuser/sitefolder/.htpasswd
  • 将组文件更改为AuthGroupFile None而不是将 apache 指向 read /dev/null。把它想象/dev/null成一个无底垃圾桶。从那里得到任何东西并不容易,这可能是服务器尝试失败的一个原因。
  • 将您要求的大小写更改为Require valid-user. 它必须是大写的 R。

总结一下:

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/webuser/sitefolder/.htpasswd 
AuthGroupFile None
Require valid-user

有关更多信息,我推荐http://httpd.apache.org/docs/

于 2013-03-24T12:13:21.467 回答
0

现在这个问题更老了但我想我也会加入,因为我没有找到最终在任何地方都对我有用的解决方案。此外,它仍然没有答案。

我的密码 .htaccess 也出现 500 错误,根据错误日志,这是由于“AuthName 接受一个参数”问题造成的。在我的头撞了太久之后,我终于注意到我在 AuthName 周围有“卷曲”引号,而不是正确的直引号。我更换了这些,确信我已经解决了我的问题。

仍然,500。差点把我的笔记本电脑扔出窗外。此时我的代码如下所示:

# PW PROTECT INT DIRECTORY
AuthType Basic
AuthName "Login"
AuthUserFile /home/mywebsite/mywebsite.com/reports/int/.htpasswd
require valid-user

六种方式直到周日之后,作为绝望的冰雹玛丽,我删除了我努力包含在文件顶部的评论(必须包括那些评论)。做到了,500解决了。最后。

我无法解释为什么这在错误日志中被解析为 AuthName 问题,但我认为我的问题都归结为试图通过不太理想的“纯文本”编辑器复制/粘贴代码(在这个例如,Apple 的 TextEdit,它也负责那些可爱的弯引号,即使在纯文本模式下也存在)。这是一个错误,我不会重复。

我不知道“#”散列字符在 TextEdit 中是否有点愚蠢,或者第 1 行是否存在一些问题作为注释,相当于一个空行(在任何地方都没有看到),但是删除注释行就可以了(如果有人知道为什么,我很想听听)。

于 2016-12-16T21:22:49.150 回答
0

我知道这个问题有点老了,但是对于那些努力寻找答案的人,请确保 AuthUserFile 的路径正确并且对 .htpasswd 文件的访问设置为 0655。

与 .htaccess 文件关联的用户正在读取该文件。如果该用户无法执行它(即,如果它设置为 644 等),则服务器无法读取文件以对其进行身份验证,并且您会收到权限错误,即错误 500。

于 2016-03-07T08:17:36.847 回答