一、普通匹配
location /abc {
root /home;
}
此时会在客户端访问abc时将/abc拼接到/home路径后面,也就是/home/abc。
二、别名匹配
location /def {
alias /home/abc;
}
使用alias 代替 root,此时在客户端访问/def时就是在访问/home/abc,也就是 /def = /home/abc
三、精确匹配
location =/abc/a.png {
root /home;
}
精确匹配是用“=”号,此时是精准匹配到/home/abc/a.png这个照片,在客户端请求时多拼接路径,少拼接路径,修改最后的文件,都是匹配不要资源。
四、正则表达式匹配
location ~* \.(GIF|png|bmp|jpg|jpeg) {
root /home;
}
其中“*”的意思是不区分大小写,在客户端访问的时候的路径会拼接到/home下面,
注:这里不区分大小写的意思是括号里面写一个png相当于一个png和一个PNG,是指后面的表达式不区分大小写,在访问资源的时候路径写的大写还是会去我们文件夹里找大写后缀的,如果只有小写后缀是找不到的,但是可以被这里路由捕捉到,因为它满足了这个正则表达式。如果去掉“ *”在后面的表达式中写一个png,这时候客户端在访问的时候路径上写的大写PNG是匹配不到的,即使我们文件资源库里有大写的PNG也是不可以的。
五、路径匹配
location ^~ /abc/img {
root /home;
}
这里的~表示以某个字符路径开头请求(:表示非 :表示正则。^表示不使用正则),在客户端访问时,只能访问到/home/abc/img下的资源。其他都不会被匹配。