1

If I'm not wrong,
location = / {} means "only the / folder, not the files inside, not the subfolders"
location ~ / {} means "the / folder, all the files inside, all the subfolders and their subfiles"
But what it means:
location ^~ / {}?
I found this configuration in the web, but I wasn't able to google an answer.
I found it in a tutorial while I was trying to protect with htpasswd a folder and everything inside of it. However location ~ / did the job, while even if location ^~ / protected everything as well, it did not let the php pages to work correctly.

Kunepro
  • 23
  • 2
  • 5

1 Answers1

1

Quote from nginx documentation:

If the longest matching prefix location has the “^~” modifier then regular expressions are not checked.

So, if the location matches / location, then locations using regex aren't evaluated. This causes the effect you described, that is, PHP scripts stop working, because PHP scripts are generally defined using a regex location block.

Tero Kilkanen
  • 788
  • 3
  • 7