8

What is the meaning of the following location block in Nginx?

location ~ /\.ht {
    deny all;
}

I ask since I have a small WordPress site and I removed this block from its configuration and restarted the server but the site kept working fine, seemingly.

  • 2
    Keeps people from downloading your security-related files. Only the web server needs to read them, not the general public. – Jeff Schaller Dec 28 '17 at 02:16

2 Answers2

16
location ~ /\.ht {
    deny all;
}

This directive tells the webserver to deny all incoming requests for any files starting with .ht in the root directory (/).

The tilde ~ tells nginx to use regular expressions.

Thus, files like .htaccess, .htpasswd, etc, will not be served.

Note: The backslash (\) before the dot, is just to escape the dot (the dot that comes before htaccess, htpassword, etc.

4

Say your website is example.com. The particular location will be example.com/.ht. So the deny all directive will deny all requests to example.com/.ht*. (* indicate any following string)

~ say nginx to go for regular expression based matching. / is root directory of your website. \ is escape character. It says to interpret . literally and not as a part of regular expression.

Abhik Bose
  • 2,118