您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页关于nginx配置中的多个if的匹配规则

关于nginx配置中的多个if的匹配规则

来源:尚车旅游网

location ~ /bb { if ( $ args ~ "_kw=[\w]+" ) { access_log logs/kw ; access_log logs/all ; } if ( $ args ~ "(_pg=[\w]+|_pc=[\w]+)" ) { access_log logs/pg ; access_log logs/all ; } if ( $ args ~ "_kw=[\w]+.*(_pg=[\w]+|_pc=[\w]+)" ) { access_

location ~ /bb {

if ($args ~ "&_kw=[\w]+"){
access_log logs/kw;
access_log logs/all;
}


if ($args ~ "(&_pg=[\w]+|&_pc=[\w]+)"){
access_log logs/pg;
access_log logs/all;
}


if ($args ~ "&_kw=[\w]+.*(&_pg=[\w]+|&_pc=[\w]+)"){
access_log logs/kw;
access_log logs/pg;
access_log logs/all;
}


access_log logs/all;

}



http://1.1.1.1/bb?&_kw=1777&_pg=-1&_pc=1

对于上面的配置,访问上面的url时,即匹配第一个if(因为\w为[a-zA-Z0-9_],不包含“-”,又匹配最后一个if,后面的if生效。(匹配多个if的args,后面的if生效)


验证:



location ~ /bb {

if ($args ~ "&_kw=[\w]+"){
access_log logs/kw;
}

if ($args ~ "&_kw=[\w]+"){
access_log logs/kw111;
}
}


我没有在nginx的文档中找到明确的有关于多个if生效的规则说明,如果谁知到在什么地方,请告诉我,谢谢。

另:关于nginx location(不是多个if)的匹配规则:

http://wiki.nginx.org/NginxHttpCoreModule#location

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务