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

时间:2014-03-13 21:09:50

标签: apache .htaccess security localhost .htpasswd

我正在尝试使用Windows机器上的Apache webserver下的localhost上的用户名和密码来保护文件夹不被直接访问。根据此article,我在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路径中的空格无关,而是与.htpasswd sintax相关的东西。我想构建一些可以在localhost和online上使用的东西。

更新

将htpasswd路径括在引号中会消除错误

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

但遗憾的是不起作用(如果我输入用户:test,密码:在需要时测试我收到密码不匹配错误)。请参阅以下apache日志:

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

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

解决!这里是在Windows下配置Apache以保护带有密码的文件夹的步骤(在本例中我使用" protected"作为文件夹名称和" htdocs"作为位置,但您可以更改它们作为您想):

  • 创建文件夹" protected"在" htdocs"
  • 在里面创建.htaccess文件" protected"包含以下代码
  • 转到此password generator tool并创建您的用户和密码
  • 将获得的代码粘贴到.htpasswd文件中并将其放入" protected"夹
  • 创建一个index.html文件并将其放入" protected"夹
  • 浏览器上的
  • 转到http://localhost/protected/
  • 输入您选择的用户名和密码

<强>的.htaccess

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

希望它对某人有帮助。

答案 1 :(得分:0)

如果您在Windows中,请记住确保可以看到文件扩展名。创建我的htaccess文件等时,这让我很烦。正在将它们创建为文本文件。

因此,请确保将所有文件另存以杀死.txt扩展名。