nginx配置中location与rewrite的匹配说明

09.21.2012 by jiezhou - 0 Comment, Posted in linux

1、location匹配前缀说明

(1) = 精确匹配,匹配成功则终止匹配。
(2) ^~ 表示匹配前缀,匹配成功则终止正则匹配。
(3) ~* 表示不区分大小写的正则匹配。
(4) ~ 表示区分大小写的正则匹配。
注:不带前缀表示普通匹配,遵循最大字符串配置。

2、location匹配顺序

(1) 前缀 “=” 先进行匹配,如果找到了,终止搜索。
(2) 对所有其它 location 进行非正则的匹配,找到最符合的匹配,也就是最大字符串配置,匹配结果如果是带”^~” 前缀的,则终止搜索并直接返回找到的这个,否则开始正则查找。
(3) 正则查找则按照配置文件中配置顺序进行查找。
(4) 如果正则查找匹配成功,则使用此正则匹配的location,否则,使用第二步查找的结果,若第二步也未找到结果,则返回404。

3、rewrite正则的flag说明

(1) last 中止当前location下的正则匹配,但会继续重新开始location匹配,循环不超过10次。
(2) break 中止任何匹配。
(3) redirect 让http header中返回状态302,意味着临时重定向
(4) permanent 让http header中返回状态301,意味着永久重定向