我正在尝试用密码保护我网站上的目录。我可以让.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)中。
任何想法我做错了什么?一切看起来都对我不错。
答案 0 :(得分:4)
如果路径无效,则会出现500错误或其他内容。由于浏览器提示输入密码,因此路径很可能正确。但是,您需要确保正确生成htpasswd。检查一下 - http://www.htaccesstools.com/htpasswd-generator/
答案 1 :(得分:4)
确保.htpasswd
的格式为user:passwordhash
,其中passwordhash
可以是以下类型:
MD5
函数的特定于Apache的算法,有点类似于加密哈希).htpasswd
文件,则生成的哈希可能会被撤销)通常您会选择CRYPT
,但如果您有更长的密码,请考虑MD5
或SHA1
。永远不要尝试使用纯文本,因为它在Linux上不受支持并且很危险。
答案 2 :(得分:0)
首先尝试删除行“AuthGroupFile / dev / null” - 如果不使用组文件,我不指定它...
如果它没有帮助 - 看看apache的error.log ......它会给你提示。在这里错误.log的相关部分...