I'm working on blocking a folder with .htaccess, which I've never used before, and I'm having some trouble. Here's what I have
.htaccess (located in the folder I want blocked):
AuthName "Username and password required"
AuthUserFile /.htpasswd
Require valid-user
AuthType Basic
.htpasswd (located at root, password is encrypted in actual file):
tim:blah
I'm getting 500 Internal Server errors with this and I can't figure out why.
If nothing helped and you're using PHP you can make it work by putting this in your index.php (on top):
Most likely problem is this line:
This line should provide full filesystem path to the password file e.g.
To discover your filesystem path, you can create a PHP document containing
echo $_SERVER['DOCUMENT_ROOT'];
I would also add that some on some Web hosts, the .htpasswd file will not work if placed in a publicly accessible area. A recent installation I did confirmed this. As others have noted, it's best to place this in the root of the site.
Permissions can cause this issue too.
Make sure
.htpasswd
is readable by the web server user.For instance, if you use nginx check the
nginx.conf
to find out what the server user is, if you use Apache you can find it out this way, etc.Then set the right owners and read permissions to
.htpasswd
Had the same problem, it had to do with access! Have you given ownership of the password file to
www-data
user through? It's best to keep the password, for obvious reasons, to keep the password somewhere outside the
/var/www/
directory, let's say/home/MYSERVER/
in such a case you also need to give ownership of this parent directory to the userwww-data
.