Reputation: 1970
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?
Upvotes: 0
Views: 6682
Reputation: 1
If your in windows remember to make sure you can see file extensions. That screwed me up when creating my htaccess file and etc... was creating them as text file.
So just make sure to save as all files to kill off .txt extension.
Upvotes: 0
Reputation: 1970
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):
http://localhost/protected/
.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.
Upvotes: 2