我正在尝试使用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
有什么想法吗?
答案 0 :(得分:1)
解决!这里是在Windows下配置Apache以保护带有密码的文件夹的步骤(在本例中我使用" protected"作为文件夹名称和" htdocs"作为位置,但您可以更改它们作为您想):
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扩展名。