Nginx Location Directive
Nginx Location Directive is used to route request to correct files.
Match
Exact match is used to match an exact URL.
1 2 3 4 5 6 7 8 9 10 |
server { listen 80 default_server; root /var/www/html; index index.html; server_name _; location /ok/ { root /home/; } } |
When location is used with no modifiers, then beginning of the URL is matched. In this case, any url http://domain/ok/FILE_NAME will be served from /home/ok/FILE_NAME
Exact Match (=)
Exact match is used to match an exact URL.
1 2 3 4 5 6 7 8 9 10 |
server { listen 80 default_server; root /var/www/html; index index.html; server_name _; location = /ok/index.html { root /home/; } } |
In this example http://domain/ok/index.html get served from /home/ok/index.html. Only this specific file will be matched.
Cause Insensitive Regular Expression Match (~*)
1 2 3 4 5 6 7 8 9 10 |
server { listen 80 default_server; root /var/www/html; index index.html; server_name _; location /ok/ { root /home/; } } |
Above code routes URL http://domain/ok/ to /home/ok/index.html. But won’t match http://domain/OK/.
If you need both /ok and /OK work, you need to use
1 2 3 |
location ~* /ok/ { root /home/; } |
With this config, http://domain/OK/FILE will be served from /home/OK/FILE.
See Nginx