nginx的location匹配规则

本文详细介绍了Nginx中location指令的四种不同匹配规则及其优先级:完全匹配(=)、区分大小写的正则匹配(~)、不区分大小写的正则匹配(~*)和前缀匹配(^~)。每种规则都有详细的示例说明。

nginx的location匹配规则

「=」修饰符:要求路径完全匹配

server {
    server_name localhost;
    location = /abcd {
    }
}
  • http://website.com/abcd匹配
  • http://website.com/ABCD可能会匹配 ,也可以不匹配,取决于操作系统的文件系统是否大小写敏感(case-sensitive)。ps: Mac 默认是大小写不敏感的,git 使用会有大坑。
  • http://website.com/abcd?param1&param2匹配,忽略 querystring
  • http://website.com/abcd/不匹配,带有结尾的/
  • http://website.com/abcde不匹配

「~」修饰符:区分大小写的正则匹配

server {
    server_name localhost;
    location ~ ^/abcd$ {
    }
}

^/abcd$这个正则表达式表示字符串必须以/开始,以d结束,中间必须是abcd

  • http://website.com/abcd匹配(完全匹配)
  • http://website.com/ABCD不匹配,大小写敏感
  • http://website.com/abcd?param1&param2匹配
  • http://website.com/abcd/不匹配,不能匹配正则表达式
  • http://website.com/abcde不匹配,不能匹配正则表达式

「~*」修饰符:不区分大小写的正则匹配

server {
    server_name localhost;
    location ~* ^/abcd$ {
    }
}
  • http://website.com/abcd匹配 (完全匹配)
  • http://website.com/ABCD匹配 (大小写不敏感)
  • http://website.com/abcd?param1&param2匹配
  • http://website.com/abcd/ 不匹配,不能匹配正则表达式
  • http://website.com/abcde 不匹配,不能匹配正则表达式

「^~」修饰符:前缀匹配,若匹配则不进行后续正则表达式检测

匹配优先级

(location =) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 完整路径)  >  (location 部分起始路径) > (/)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值