我创建了 .htaccess 和 .htpasswd 文件,并将它们存储在我想要保护的文件夹中,当我导航到该文件夹​​时,在输入用户名和密码后,系统会要求我输入用户名和密码(存​​储在 .htpasswd 文件中)密码,我收到 500 内部服务器错误。我在本地主机(windows)和网络服务器(我猜是linux)上使用了这些文件,都给出了相同的结果。

这是我的 .htaccess 文件:

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user 
order deny,allow
有帮助吗?

解决方案

我怀疑你的 .htpasswd 文件实际上位于服务器文件系统的根目录 /bin, /usr, /home, ,以及其他(而不是在为网络浏览器提供服务的文件系统部分内)。

根据 Apache 文档(1, 2), AuthUserFile 需要一个文件路径(就像你在 ServerRoot 中一样,通常 /usr/apache 或类似的,并尝试从 Unix shell 中找到该文件)。它不能是 URL,无论是绝对 URL 还是相对 URL。纠正你的 .htpasswd 相应的文件路径。

请注意,如果可能的话,您不应将 .htpasswd 文件内a public_html 或者 htdocs 文件夹,因为任何配置错误不仅可能允许未经授权地访问您要保护的文件,还可能允许授权的用户名和散列密码。

其他提示

使用绝对托管路径,例如:

/home/content/14/5267714/html/.htpasswd
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top