nginx之location的匹配规则】的更多相关文章

nginx之location的匹配规则 一.语法规则 location [=|~|~*|^~] /uri/ { - } 符号 含义 = 开头表示精确匹配 ^~ 开头表示 uri 以某个常规字符串开头 ~ 开头表示区分大小写的正则匹配 ~* 开头表示不区分大小写的正则匹配 / 通用匹配,任何请求都会匹配到 匹配顺序: =, ^~,文件顺序,/ 例如: /规则: 匹配所有请求 /api/ 匹配: http://localhost/api/ http://localhost/api/hello htt…
有些童鞋的误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则”解释不了大家平时习惯的按“先匹配正则,再匹配普通”的实践经验.这里我只能暂时解释下,造成这种误解的原因是:正则匹配会覆盖普通匹配(实际的规则,比这复杂,后面会详细解释). 2. location 的执行逻辑跟 location 的编辑顺序无关. 矫正:这句话不全对,“普通 locatio…
Nginx配置location及rewrite规则 示例: location  = / {   # 精确匹配 / ,主机名后面不能带任何字符串   [ configuration A ] } location  / {   # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求   # 但是正则和最长字符串会优先匹配   [ configuration B ]  }   location /documents/ {   # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还…
nginx中location的匹配模式有以下几种: 精确匹配:以=开头,只有完全匹配才能生效,例子location = /uri 非正则匹配:以^~开头,^表示非.~表示正则,例子location ^~ /uri 正则匹配: 以~开头,表示区分大小写的正则匹配,例子location ~ pattern 以!~开头,表示区分大小写不匹配的正则,例子location !~ pattern 以~*开头,表示不区分大小写的正则匹配,例子location ~* pattern 以!~*开头,表示不区分大小…
Location语法语法:location [=|~|~*|^~] /uri/ { … } = --> 开头表示精确匹配 ^~ --> 开头表示uri以某个常规字符串开头,理解为匹配url路径即可. nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格). ~ --> 开头表示区分大小写的正则匹配 ~* --> 开头表示不区分大小写的正则匹配 !~和!~* --> 分别为区分大小写不匹配及不区分大小写不…
当nginx收到一个请求后,会截取请求的url部份,去搜索所有location指令中定义的URI匹配模式.在server模块中可以定义多个location指令来匹配不同的url请求,多个不同的location配置的URI匹配模式,总体的匹配原则是: 先匹配普通字符串模式,再匹配正则模式. 只识别URI部分,例如: /test/abc/user.do?name=xxxx 一个请求过来后,nginx匹配这个请求的流程如下: 1:先查找是不有=开头的精确匹配,如:location = /test/ab…
1. location正则写法 语法规则: location [=|~|~*|^~] /uri/ { … } =    开头表示精确匹配 ^~  开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格). ~   开头表示区分大小写的正则匹配 ~*  开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任…
location 教程 location 教程 示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] }location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] }location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没…
location匹配规则与优先级 = 精确匹配,匹配成功则停止匹配 ^~   前缀普通字符匹配,匹配成功则停止匹配 ~ 正则匹配,区分大小写:多个正则按顺序匹配 ~*   正则匹配,不区分大小写:多个正则按顺序匹配 !~   正则不匹配,区分大小写:多个正则按顺序匹配 !~* 正则不匹配,不区分大小写:多个正则按顺序匹配 /url 开头普通字符匹配,在正则匹配之后:多个普通字符按长度匹配 / 通用匹配,未匹配到location的都会匹配到此 location匹配实例 = 匹配 访问:http:/…
匹配规则 匹配顺序 示例 [root@python vhast]# cat test.conf server { server_name haha.com; #listen 8080; rewrite_log on; error_page 404 /403.html; #return 405; location /{ #return 404 "find nothing!\n"; } root html/; location /first { rewrite /first(.*) /se…