在Nginx中,location指令用于定义如何匹配和处理不同的请求URI。当需要匹配多个前缀时,可以使用多种方法,包括普通前缀匹配和正则表达式匹配。以下是如何在Nginx中匹配多个前缀的详细步骤和示例: 1. 使用普通前缀匹配 普通前缀匹配是指不使用任何修饰符(如=、^~、~、~*)的location指令。Nginx会按照配置文件中location指令...
location = pattern {} 精准匹配 location pattern {} 一般匹配 location ~ pattern {} 正则匹配 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/...
nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。 ~ 开头表示区分大小写的正则匹配 ~* 开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 / 通用匹配,任何请求都会匹配到。 多个location配置的情况下匹配顺序为(参考资料而来,...
location=/ {# 精确匹配 / ,主机名后面不能带任何字符串[path A ]}location/ {# 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求# 但是正则和最长字符串会优先匹配[path B ]}location/documents/ {# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索# 只有后面的正则表达式没有匹...
~*开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则 /通用匹配,任何请求都会匹配到 优先级: 等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他location的匹配项 ^~和通用匹配。使用前缀匹配,不支持正则表达式,如果有多个location...
location ^~ /uri #开头对URL路径进行前缀匹配,并且在正则之前。 location ~ pattern #开头表示区分大小写的正则匹配。 location ~* pattern #开头表示不区分大小写的正则匹配。 location /uri #不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。 location / #通用匹配,任何未匹配到其它location的请求都会匹配到...
Nginx 首先会尝试找到与请求的 URI 完全匹配的 location 块。例如,有一个 location = /test 的配置,当请求的 URI 是 /test 时,则应用这个配置。 前缀匹配: 没有找到精确匹配的 location 块,Nginx 会尝试寻找以请求的 URI 开头的前缀匹配。在多个前缀匹配的情况下,Nginx 会选择最长的那个前缀。例如,对于 URI:...
# 只匹配 / 查询。 [ configuration A ] } location / { # matches any query, since all queries begin with /, but regular # expressions and any longer conventional blocks will be # matched first. # 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
location~*^/test${[configuration]}# /test ok# /Test ok# /test/ not ok#/test2notok ^~表示 uri 以某个字符串开头 location^~/images/{[configuration]}#/images/1.gifok 而当你不使用这些语法的时候,只写 uri 的时候: /表示通用匹配: