nginx 逻辑运算 if另类嵌套取反匹配等
2016-04-22 15:57
609 查看
nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,而且不支持if的嵌套语法,否则会报下面的错误:nginx: [emerg] invalid condition。
我们可以用变量的方式来间接实现。
要实现的语句:
if ($arg_unitid = 42012 && $uri ~/thumb/){
echo "www.ttlsa.com";
}
如果按照这样来配置,就会报nginx: [emerg] invalid condition错误。
可以这么来实现,如下所示:
set $flag 0;
if ($uri ~ ^/thumb/[0-9]+_160.jpg$){
set $flag "${flag}1";
}
if ($arg_unitid = 42012){
set $flag "${flag}1";
}
if ($flag = "011"){
echo "www.ttlsa.com";
}
转载请注明来自运维生存时间: http://www.ttlsa.com/html/3876.html
我们可以用变量的方式来间接实现。
要实现的语句:
if ($arg_unitid = 42012 && $uri ~/thumb/){
echo "www.ttlsa.com";
}
1 2 3 | if ($arg_unitid = 42012 && $uri ~/thumb/){ echo "www.ttlsa.com"; } |
可以这么来实现,如下所示:
set $flag 0;
if ($uri ~ ^/thumb/[0-9]+_160.jpg$){
set $flag "${flag}1";
}
if ($arg_unitid = 42012){
set $flag "${flag}1";
}
if ($flag = "011"){
echo "www.ttlsa.com";
}
1 2 3 4 5 6 7 8 9 10 | set $flag 0; if ($uri ~ ^/thumb/[0-9]+_160.jpg$){ set $flag "${flag}1"; } if ($arg_unitid = 42012){ set $flag "${flag}1"; } if ($flag = "011"){ echo "www.ttlsa.com"; } |
相关文章推荐
- nginx配置
- nginx配置websocket
- [译]用NGINX最大化发挥PYTHON性能
- 在Windows环境下搭建Nginx文件服务器(简单实用版)
- Nginx设置虚拟主机,添加多站点
- nginx安装
- nginx-1.6.3平滑升级到nginx-1.8.1
- Linux Nginx升级
- CentOS下nginx简单安装
- nginx在linux上的环境搭建(一)
- PHP+Apache/nginx 文件上传大小
- 为什么 Nginx 的性能要比 Apache 高很多?
- vim对nginx的语法高亮设置
- Nginx配置性能优化
- nginx 编译及配置文件
- Nginx max_clients worker_connections worker_proces
- Linux/Centos7设置nginx开机自启动
- nginx之location语法规则正则
- Nginx:Location匹配规则笔记
- nginx配置负载均衡