使用密码保护文件夹在localhost上失败(在Apache和Windows下)



我正试图在Windows机器上的Apache Web服务器下,使用localhost上的用户名和密码来保护文件夹不受直接访问。根据本文,我在phpinfo结果中查找了DOCUMENT_ROOT值,并找到了以下内容:C:/Program Files/Apache Software Foundation/Apache2.2/htdocs

由于我在htdocs中的文件夹名为protected,我创建了以下htaccess文件:

AuthType Basic
AuthName "restricted area"
AuthUserFile C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/protected/.htpasswd
require valid-user

和以下.htpasswd(用户:测试,密码:测试(

test:teH0wLIpW0gyQ

但当我尝试访问文件夹时,我收到一个"内部服务器错误"。查看Apache错误日志,我发现以下行:

[Thu Mar 13 22:00:15 2014] [alert] [client 127.0.0.1] C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/protected/.htaccess: AuthUserFile takes 1-2 arguments, text file containing user IDs and passwords

我错过了什么?我似乎与.htpasswd路径中的空格无关,但与.htpapassd-sintax有关。我想构建一些既可以在本地主机上使用又可以在线使用的东西。

更新

将htpasswd路径用引号括起来可以消除错误

AuthUserFile "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/protected/.htpasswd"

但不幸的是,它不起作用(如果我在需要时键入user:test,password:test,我会收到一个密码不匹配的错误(。请参阅以下apache日志:

[Thu Mar 13 22:26:43 2014] [error] [client 127.0.0.1] user test: authentication failure for "/protected/": Password Mismatch

有什么想法吗?

已解决!以下是在windows下配置Apache以使用密码保护文件夹的步骤(在本例中,我使用"protected"作为文件夹名称,使用"htdocs"作为位置,但您可以根据需要更改它们(:

  • 在"htdocs"下创建"protected"文件夹
  • 在包含以下代码的"protected"中创建.htaccess文件
  • 转到此密码生成器工具并创建您的用户和密码
  • 将获得的代码粘贴到.htpasswd文件中,并将其放入"protected"文件夹中
  • 创建一个index.html文件并将其放在"受保护"文件夹中
  • 在浏览器上转到http://localhost/protected/
  • 键入您选择的用户名和密码

.htaccess

AuthType Basic
AuthName "restricted area"
AuthUserFile "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/protected/.htpasswd"
require valid-user

希望它能帮助到别人。

如果你在windows中,记得确保你能看到文件扩展名。在创建我的htaccess文件等时,我搞砸了……把它们创建为文本文件。

所以,只要确保保存为所有文件,以消除.txt扩展名。

最新更新