它基于请求的URI(统一资源标识符)来匹配不同的location块,并根据匹配到的location块中的配置来处理请求。location指令可以配置在server块或location块中,用于实现请求的路由、重定向、代理等多种功能。 2. “/”开头匹配规则的含义 当location指令中的URI以“/”开头时,它表示一个前缀匹配。这种匹配规则会匹配所有以...
location [=|~|~*] /uri/ { … } ~ #波浪线表示执行一个正则匹配,区分大小写 ~* #表示执行一个正则匹配,不区分大小写 = #进行普通字符精确匹配 URI匹配模式 location的指令分为两种匹配模式 1.普通字符串匹配: 以=开头或者没有带正则引导符号(~)规则 2.正则匹配:以()开头或者(*)开头的表示正则匹配 ...
http://website.com/abcd/不匹配,不能匹配正则表达式 http://website.com/abcde不匹配,不能匹配正则表达式 ##「^~」修饰符:前缀匹配 如果该 location 是最佳的匹配,那么对于匹配这个 location 的字符串, 该修饰符不再进行正则表达式检测。注意,这不是一个正则表达式匹配,它的目的是优先于正则表达式的匹配 查找...
1、~ # 使用波浪符“ ~”区分大小写正则匹配,如 location ~ /abc { } 2、~* #不区分大小写的正则匹配,如 location ~* /abc { } 3、^~ # 匹配路径的前缀,如果找到停止搜索,如 location ^~ /abc { } 4、= #精确匹配 如 location = /abc { } 5、 #普通路径前缀匹配 如 location /abc { } ...
普通location: 除了上面其余全是(包括没有前缀) “=”,“^~”,“@” “^~”中的“^”表示非,“~”表示正则,意思为不要继续匹配正则 “=”也表示阻止正则location,和“^~”的区别为:“^~”依然遵守“最大前缀”匹配;而“=”必须是严格匹配。
location^~ /uri #开头对URL路径进行前缀匹配,并且在正则之前。 location~pattern #开头表示区分大小写的正则匹配。 location~*pattern #开头表示不区分大小写的正则匹配。 location/uri #不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。 location/ #通用匹配,任何未匹配到其它location的请求都会匹配到,相当于swit...
location [=||*|^~] /uri/ { … } 前缀匹配时,Nginx 不对 url 做编码,因此请求为 /static/20%/aa,可以被规则 ^~ /static/ /aa 匹配到(注意是空格) 匹配优先级 多个location 配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考): ...
~*开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则 /通用匹配,任何请求都会匹配到 优先级: 等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他location的匹配项 ^~和通用匹配。使用前缀匹配,不支持正则表达式,如果有多个location...
1、location 介绍 location是Nginx中的块级指令(block directive),,location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理解的是多个location的匹配顺序,本文会作为重点来解释和说明。 开始之前先明确一些约定,我们输入的网址叫做请求URI,nginx用请求URI与location中配置的URI做匹配。