nginx location匹配规则

location正则表达式

语法:location[=|~|~*|^~|@]/uri/{...}bash

配置块:server服务器

    location会尝试根据用户请求中的URI来匹配上面的uri表达式,若是能够匹配,就选择location{}块中的配置来处理用户请求。配置方式是多样的,匹配规则以下code

标示把URI做为字符串,以便参与参数中的uri作彻底匹配。例如:server

location =/{
  #只有当用户请求是/时,才会使用该location下的配置
 ...
}

~ 表示匹配URI时是字母大小写敏感的字符串

~* 表示匹配URI时是忽略大小写敏感的io

^~ 表示匹配URI时只须要其前半部分与uri参数匹配便可。例如:class

location ^~ /imgages/{
   # 以/imgages/开始的请求都会被匹配上
   ...
}

表示仅用于Nginx服务器内部请求之间的重定向,带有@的location不直接处理用户请求。配置

固然,在uri参数里是能够用正则表达式的,例如语法

location ~*\.(gif|jpg|jpeg)${
  #匹配以.gif,.jpg,.jpeg结尾的请求
  ...
}

    注意,location是有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。

    在以上各类匹配方式中,都只能表达为“若是匹配。。。则。。。”。而若是须要表达“若是不匹配。。。则。。。”,就很难作到。有一种解决方法是在最后一个location中使用/做为参数,它会匹配全部的HTTP请求,这样就能够标识若是不能匹配前面的全部location,则由"/"这个location来处理。例如:

location /{
 #能够匹配全部请求
 ...
}
相关文章
相关标签/搜索