带有Apache的XAMPP.htpassword密码不会被读取为加密的


XAMPP with Apache; .htpassword passwords dont get read as encrypted

当尝试使用.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