zoukankan      html  css  js  c++  java
  • nginx的location匹配规则

    参考博客:https://www.cnblogs.com/yyxianren/articles/10723052.html

    Nginx location 配置语法

      location [ = | ~ | ~* | ^~ ] uri { ... }

      location @name { ... }

    location 配置可以有两种配置方法

    前缀 + uri(字符串/正则表达式)

    @ + name(内部跳转)

    前缀含义

    =:精确匹配(必须全部相等)

    ~:大小写敏感

    ~*:忽略大小写

    ^~:只需匹配uri部分

    @:内部服务跳转

    规则分类分为三类:

    正则匹配 :其中“~ ”和“~”以及“!~”和“!~”前缀表示正则location .

    精准匹配  location = url {}

    普通匹配 : 其他前缀(包括:“^~”和“@ ”)和无任何前缀的都属于普通location .

    =精确匹配

    location = / { #规则 }   

      #则匹配到 `http://www.example.com/` 这种请求

    ~大小写敏感

    location~ /Example/ { #规则 }   

      #请求示例#http://www.example.com/Example/ [成功]

      #http://www.example.com/example/ [失败]

    ~*大小写忽略

     location~* /Example/ { #规则 }

      # 则会忽略 uri 部分的大小写

      #http://www.example.com/Example/ [成功]

      #http://www.example.com/example/ [成功]

    ^~只匹配以 uri 开头

     location ^~ /img/ { #规则 }

      #以 /img/ 开头的请求,都会匹配上

      #http://www.example.com/img/a.jpg [成功]

      #http://www.example.com/img/b.mp4 [成功]

    匹配规则:

     1.首先会进行精准匹配,如果精准匹配能够匹配到,那么就以精准匹配为准

     2、其次会进行普通匹配,如果然后记忆普通匹配的最大精度匹配,如果最大精度匹配是完全匹配,或者^~ 则匹配结束,返回匹配结果为最大精度匹配结果,普通匹配不关注顺序,否则记忆最大精度匹配结果。

    3、 最后进行正则匹配。从上至下开始正则匹配,正则匹配,如果命中,则终止匹配。返回正则匹配的结果,如果正则匹配不到,则返回最大今年精度的普通匹配的结果。正则匹配关注顺序一旦匹配中,则不再继续匹配,所以正则匹配一定要注意顺序。

    博客中如有错误,欢迎指正。如有疑问,欢迎评论。希望能和大家一起学习进度。

     

     

  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/cheng21553516/p/11204520.html
Copyright © 2011-2022 走看看