Nginx多重if判断的实现
2015-05-13 09:28
253 查看
首先
Nginx不支持 and、or、&&、|| 这类语法;且不支持if的多重嵌套,例如:if (aaa) { if (bbb) { exec @ccc; } }
多重判断如何实现呢?
最近要做个配置,将移动设备访问网页时跳转到手机版面。需要判断2个部分才做跳转:一、客户端来源为移动设备;二、访问指定域名业务时。
实现方法一
每个域名配置单独的server{},这样配置比较简明;但缺点是配置文件会写很长,要修改多次。(比较啰嗦)
实现方法二
全部域名配置一个server{},进行多重判断;这样配置可能稍微复杂一点,但配置文件不会那么啰嗦。
server { listen 80; server_name _; set $domain $host; root /webapp/$domain; ...其它略 if ($http_user_agent ~* "UCBrowser|Android|Iphone|Ipad|Ipod|BlackBerry|Windows Phone|Symbian(.*)Series60/3|Symbian(.*)Series60/5") { set $mobile '1'; } if ($host !~* ^(app1|app2|app3)\.google\.com) { set $mobile '0'; } if ($mobile = 1) { rewrite "^/index.html$" /mobile/index.html last; } ...其它略 }
后续
移动设备的 http_user_agent 还不全,慢慢收集~相关文章推荐
- nginxif多条件结合判断(实现限速)
- Nginx中实现if多重判断写法
- NGINX实现IF语句里的AND,OR多重判断
- Nginx实现if多重判断配置方法示例
- NGINX实现IF语句里的AND,OR多重判断
- java 利用Java if和switch语句实现判断闰年
- Mysql Select if 语句中实现的判断
- 不用判断语句如if,?:等来实现比较2个数
- Nginx中if语句中的判断条件
- if 判断两个数值大小--多分支if语句实现对参数的严格判断
- 微信小程序 —— 瀑布流简单写法(css3属性加wx:if判断轻松实现)
- CASE函数用法:相当于switch..case:,能够实现等值判断,也可以做范围判断 相当于if...else
- js利用运算符优先级实现if else条件判断表达式
- MySQL 如何利用一条语句实现类似于if-else条件语句的判断
- nginx 配置中的if判断
- nginx多条件if判断后rewrite,减轻后端php工作压力(随笔)
- Java实现1+2+...+n,不用乘除符号,不用if等条件判断,不用for等循环
- 实现1+2+3+...+n。要求不能使用乘除法,for,while,if,else,switch,case,等关键字及条件判断语句。
- 【mybatis】IF判断的坑 (实现<if test=" status == 'zhangsan'">)