location路径匹配
绝对匹配
location = /abc.html {
root /usr/share/nginx/html/;
}
请求地址:http://localhost/abc.html
- 匹配路径:/usr/share/nginx/html/abc.html
- 最=绝对匹配里,index 引导页面显示是无效的
匹配根路径
location / {
root /usr/share/nginx/html/;
index /demo_a.html;
}
请求地址:http://localhost/index.html
- 匹配路径:/usr/share/nginx/html/index.html
匹配文件
location /documents/ {
root /usr/share/nginx/html/;
index /demo_a.html;
}
1.以上规则请求地址:http://localhost/documents/demo_a.html
- root匹配路径:/usr/share/nginx/html/documents/demo_a.html
- alias匹配路径:/usr/share/nginx/html/demo_a.html
- 如果demo_a前面或html后面没有/,则匹配路径:/usr/share/nginx/htmldemo_a.html
location /documents {
alias /usr/share/nginx/html/;
index /demo_a.html;
}
2.以上规则请求地址:http://localhost/documentstest/demo_a.html
- 如果document后面的/去掉,匹配:/usr/share/nginx/html/test/demo_a.html,可以看到nginx自动分割了documentstest
匹配图片
location ^~ /images/ {
alias /usr/share/nginx/html/;
}
请求地址:http://localhost/images/demo_b.jpg
- root匹配路径:/usr/share/nginx/html/images/demo_b.jpg
- alias匹配路径:/usr/share/nginx/html/demo_b.jpg
- 如果html后面没有/,则匹配:/usr/share/nginx/htmldemo_b.jpg
后缀匹配
location ~* \.(gif|jpg|jpeg)$ {
root /usr/share/nginx/html/;
}
请求地址:http://localhost/documents/1.jpg
- 匹配路径:/usr/share/nginx/html/b.jpg
location命令
路径匹配命令
匹配的优先级,从上至下
- 【=】 精确匹配
- 【^~】普通字符前缀匹配,就不检查正则表达式
- 【~】 区分大小写的正则匹配
- 【~*】 不区分大小写的正则匹配
文件匹配命令
alias
去掉location匹配的路径,然后去匹配服务器文件的目录
root
拼接location匹配的路径,请求路径+root地址去匹配服务器文件路径
try_files
作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。
参数信息
请求地址:http://localhost/documents/demo.html?id=1
- 打印
$request_uri
得到:/documents/demo.html?id=1 - 打印
$uri
得到:/documents/demo_a.html