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.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.