htaccess找不到.htpasswd文件

时间:2012-10-29 12:50:12

标签: php .htaccess

我正在尝试用密码保护我网站上的目录。我可以让.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)中。

任何想法我做错了什么?一切看起来都对我不错。

3 个答案:

答案 0 :(得分:4)

如果路径无效,则会出现500错误或其他内容。由于浏览器提示输入密码,因此路径很可能正确。但是,您需要确保正确生成htpasswd。检查一下 - http://www.htaccesstools.com/htpasswd-generator/

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:0)

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

如果它没有帮助 - 看看apache的error.log ......它会给你提示。在这里错误.log的相关部分...