Protect folder with password fails on localhost (under Apache and Windows)

a 夏天 提交于 2019-12-14 04:06:26

问题


I am trying to protect a folder from direct access with username and password on localhost under Apache webserver on Windows machine. According to this article, I've looked for DOCUMENT_ROOT value in phpinfo results and found the following: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs.

Since my folder inside htdocs is called protected, I created the following htaccess file:

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

and the following .htpasswd (user:test, password: test)

test:teH0wLIpW0gyQ

But when I try to access the folder, I receive an "Internal Server Error". Looking on Apache error log, I found the following line:

[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

What am I missing? I doesn't seem to be related to spaces in .htpasswd path, but something related to .htpasswd sintax. I would like to build something which can be used both on localhost and online.

UPDATE

Enclosing htpasswd path into inverted commas eliminates the error

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

but unfortunately doesn't work (if I type user:test, password:test when required I receive a password mismatch error). See the following apache log:

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

Any ideas?


回答1:


Solved! Here the steps to configure Apache under windows to protect a folder with password (in this example I use "protected" as folder name and "htdocs" as location, but you can change them as you want):

  • create folder "protected" under "htdocs"
  • create .htaccess file inside "protected" containing the code below
  • go to this password generator tool and create your user and password
  • paste the obtained code to a .htpasswd file and put it inside "protected" folder
  • create a index.html file and put it inside "protected" folder
  • on your browser go to http://localhost/protected/
  • type username and password you've chosen

.htaccess

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

Hope it helps somebody.



来源:https://stackoverflow.com/questions/22390978/protect-folder-with-password-fails-on-localhost-under-apache-and-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!