1

我正在尝试用密码保护我网站上的目录。我可以让 .htaccess 正常工作,这样当我访问目录时会显示密码提示,但是当我将存储在 .htpasswd 文件中的正确凭据放入时,我没有被授予访问权限。再次弹出密码提示。

我认为这是 .htaccess 文件中 .htpasswd 文件的路径有问题。我检查了我的文档根 (_SERVER["DOCUMENT_ROOT"]),它显示根是这样的:

/var/www/vhosts/myurl.info/httpdocs

所以我的 .htaccess 看起来像这样:

AuthName "Restricted Area"
AuthType Basic 
AuthUserFile /var/www/vhosts/myurl.info/httpdocs/.htpasswd 
AuthGroupFile /dev/null 
require valid-user

我已将 .htpasswd 放在根文档文件夹 (httpdocs) 中。

任何想法我做错了什么?一切对我来说都是正确的。

4

3 回答 3

5

如果路径无效,您会收到 500 错误或其他信息。由于浏览器提示输入密码,很可能路径是正确的。但是,您需要确保正确生成了 htpasswd。检查这个 - http://www.htaccesstools.com/htpasswd-generator/

于 2012-10-29T13:56:23.710 回答
4

确保.htpasswd格式为user:passwordhash,其中passwordhash可以是以下类型:

  • CRYPT(一种加密哈希,仅支持前 8 个字符,因此请注意不要选择超过 8 个字符的密码)
  • MD5(一种使用该MD5函数的特定于 Apache 的算法,有点类似于加密哈希)
  • SHA1(每个密码只有一个可能的结果,因此如果黑客设法获取.htpasswd文件,结果哈希可能会被反转)
  • 纯文本(您始终可以创建这种格式,但请注意“httpd 守护程序将接受Windows、Netware 和 TPF上的纯文本密码”。使用纯文本也是不安全的,因为如果黑客获取文件,他将知道您的所有密码)

通常您会选择CRYPT,但如果您有更长的密码,请考虑MD5SHA1。永远不要尝试使用纯文本,因为它在 Linux 上不受支持并且很危险。

于 2012-10-29T14:01:09.980 回答
0

首先尝试删除行“AuthGroupFile /dev/null” - 如果不使用组文件,我不会指定它...

如果它没有帮助 - 看看 apache 的 error.log ......它会给你提示。在此处发布error.log的相关部分...

于 2012-10-29T12:57:50.873 回答