匹配模式及顺序
= 用于标准uri前,需要请求字串与uri完全匹配,如果匹配成功就停止向下匹配并立即处理请求。
~ 区分大小写
~* 不区分大写
^~ 开头对URL路径进行前缀匹配,并且在正则之前
!~ 区分大小写不匹配
!~* 不区分大小写不匹配
^ 匹配正则开头
$ 匹配正则结尾
\ 转义字符。可以转. * ?等
* 代表任意长度的任意字符
#不区分大小写匹配任何以gif、jpg、jpeg结尾的请求
location ~* .(gif|jpg|jpeg)$ {
}
#区分大小写匹配以.txt结尾的请求,并设置此location的路径是/usr/local/nginx/html/。也就是以.txt结尾的请求将访问/usr/local/nginx/html/ 路径下的txt文件
location ~ ^.+\.txt$ {
root /usr/local/nginx/html/;
}
# ^~ 以 /admin/ 开头的请求,都会匹配上
location ^~ /admin/ {
root /xvdb/mobai/
}
此时 /xvdb/mobai/目录中必须要有 admin 文件夹
#匹配成功: http://www.cnblogs.com/admin/index.jsp
#匹配成功: http://www.cnblogs.com/admin/login.jsp
#以 /dev_and_test 都会被匹配上,并且跳转到https://ng.cnblog.com
location ^~ /dev_and_test {
rewrite ^/dev_and_test/(.*)$ https://ng.cnblog.com/$1 permanent;
}
#匹配成功: http://www.cnblogs.com/dev_and_test/index.jsp 并且跳转到 https://ng.cnblog.com/index.jsp
#忽略大小写,包含/Images/
location ~* /Images/ {
}
#匹配成功: http://www.cnblogs.com/test/Images/
#匹配成功: http://www.cnblogs.com/images/
#不加任何规则则时,默认是大小写敏感,前缀匹配,相当于加了“^”与“~”
location /index/ {
}
#匹配成功: http://www.cnblogs.com/index
#匹配成功: http://www.cnblogs.com/index/index.html
#匹配失败: http://www.cnblogs.com/test/index
#匹配失败: http://www.cnblogs.com/Index
#精确匹配, 只匹配http://www.cnblogs.com
location = / {
}
#匹配成功: http://www.cnblogs.com
#匹配失败: http://www.cnblogs.com/index
# 匹配到所有url
location / {
}