Nginx正则及location匹配,NginxRwrite规则
nginx正则及location匹配
- nginx location 规则匹配
^~ 标识符匹配后面跟一个字符串,匹配字符串后将停止对后续的正则表达式进行匹配。
如location ^~ /images/,在匹配了/images这个学符串后就停止对后续的正则匹配。
= 精准匹配,如location = /,只会匹配url为/的请求。
~ 区分大小写的匹配。
~* 不区分大小写的匹配。
!~ 对区分大小写的匹配取非。
!~* 对不区分大小写的匹配取非。
/ 通用匹配,如果没有其它匹配,任何请求都会被匹配到。
- 正则表达式
* 重复前面的字符0次或多次
? 重复前面的字符0次或1次
+ 重复前面的字符1次成多次
. 匹配除换行符以外的任意1个字符
(a|b) 匹配a或b
^ 以...开头
$ 以结尾
{
n} 重复前面的字符n次
{
n,} 重复前面的字符n次或更多次
{
n,m} 重复前面的字符n到m次
*? 重复前面的字符0次或多次,但尽可能少重复
+? 重复前面的字符1次或更多次,但尽可能少重复
?? 重复前面的字符0次或1次,但尽可能少重复
{
n,m}? 重复前面的字符n到m次,但尽可能少重复
{
n,}? 重复前面的字符n次以上,但尽可能少重复
- nginx location应用规则
location [=|~|~*|^~|!~|!~*] /url/{
...}
默认值:no
使用字段:server
location参数根据URL的不同需求来进行配置,可以使用字符串与正则表达式匹配。
例子
location ~* .*\.jsp$ {
#不区分大小写匹配,以.jsp结尾的
proxy_pass http://tomcat_server;
}
- 匹配顺序优先级
(location =) > (location 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (/) - 例子:
location = / {