1、优先级规则
    优先级由低到高依次是:
    普通匹配 < 长路径匹配 < 正则匹配 < 短路匹配 < 精确匹配
    1)普通匹配
    浏览器地址栏中的访问路径均为如下形式,不变。
    image.png
    下面的匹配规则是:只要请求是以/xxx 开头的路径就可命中。
    image.png
    image.png
    2)长路径匹配
    当一个请求路径既可以与一个长路径相匹配,又可以与一个短路径相匹配时,长路径优先级高。配置如下,请求路径不变
    image.png
    此时访问结果为,返回的为401,匹配的是长路径。
    image.png
    3)正则匹配
    在正则匹配与普通匹配(长路径匹配也属于普通匹配)均可匹配上时,正则匹配的优先级高。
    A、区分大小写的正则匹配
    ~表示这里是正则表达式,默认匹配是区分大小写的。
    在长路径匹配与正则匹配间,仍然是正则匹配的优先级要高于长路径匹配的,即使正则匹配的要短于长路径匹配的。
    image.png
    配置如上,请求路径不变,此时匹配的是正则表达式的路径,返回的是402
    image.png
    当请求中的 XXX 写为大写字母,会报 404 找到资源。
    image.png
    B、 不区分大小写的正则匹配
    ~后跟上*号,表示这是不区分大小写的正则表达式
    image.png
    此时就可以正常访问到了。
    image.png
    4)短路匹配
    以^~开头的匹配路径称为短路匹配,表示只要匹配上,就不再匹配其它的了,即使是正则匹配也不再匹配了。即其优先级要高于正则匹配的。如下设置,要注释掉上面401的location,因为其与短路匹配路径一样,如果不注释掉,配置文件会报错。
    image.png
    此时重新访问,返回的是403,说明短路匹配的优先级要高于正则匹配。
    image.png

    5)精确匹配
    以等号(=)开头的匹配称为精确匹配,其是优先级最高的匹配。
    image.png
    此时访问需要注意,浏览器的uri最后是不能带有/的。如果带有/返回的还是403。
    image.png
    image.png