当尝试使用.htaccess和.htpasswd对页面进行密码保护时,我会转到我保护的页面并键入用户名和密码。问题是我加密的密码不是我必须输入的密码。相反,它是加密的密码。
例如:
lol:noitcS2m.5F6.
我输入lol
作为用户名,noitcS2m.5F6.
作为密码,它允许我进入。
但是,如果我使用我加密的密码,它就不起作用。有人能向我解释一下我做错了什么吗?我安装了XAMPP 1.8.0、Apache 2.4.2和PHP 5.4.4。
我的.htaccess文件包括以下内容:
AuthType Basic
AuthName "restricted area"
AuthUserFile C:/xampp/htdocs/pass/.htpasswd
require valid-user
它位于C:/xampp/htdocs/dl/
中
此外,如果AuthUserFile
是/dl/.htpasswd
,则它将给我错误500。
如果有人可能需要指导 (适用于APACHE 2.2和GREATER/Current XAMPP)
转到默认XAMPP文件夹,然后转到apache/bin/error.log。此文件包含localhost中apache文件上发生的所有错误,这使诊断更加容易。
示例(我的一个):
[auth_basic:error] [pid 408:tid 1772] [client 127.0.0.1:4077] AH01617: user go_admin: authentication failure for "/HTAccessible/test/London/": Password Mismatch, referer: http://localhost/HTAccessible/test/London/
再次运行目录,然后滚动到显示错误消息的文件底部,这样StackOverflow可以更好地帮助您。
可能的解决方案
还有阿兰·廷布罗。我最近也遇到了Windows XAMPP上的crypt(base64())加密方法的问题——在查看了Apache网站后,建议也使用这种方法。
'{SHA}' . base64_encode(sha1($password, TRUE)); //which works
或者,您可以打开命令提示符(开始菜单->附件->命令提示符)并执行以下方法(由于您直接使用Apache,因此应该始终正确加密):
此处描述的方法适用于htpasswd