如何在nginx“if”语句中使用“或”运算符?

如何在nginx“if”语句中使用“或”运算符?,第1张

概述如何在nginx“if”语句中使用“或”运算符?

例如,我想要这样做:

if ($http_user_agent ~ "MSIE 6.0" || $http_user_agent ~ "MSIE 7.0" (etc,etc)) { rewrite ^ ${ROOT_ROOT}ancIEnt/ last; break; }

而不是这个:

if ($http_user_agent ~ "MSIE 6.0") { rewrite ^ ${ROOT_ROOT}ancIEnt/ last; break; } if ($http_user_agent ~ "MSIE 7.0") { rewrite ^ ${ROOT_ROOT}ancIEnt/ last; break; }

Nginx拒绝这个语法(减去(etc等)),我没有看到关于这个文档的任何东西。 提前致谢。

另外,我们select不使用$ ancIEnt_browser指令,所以这不是一个选项。

在Ubuntu 12.04上设置Nginx的iRedMailpipe理站点

Nginx:缓冲链

从子文件夹服务Express.Js应用程序

Nginx,fastcgi和open socket

Zend框架附加获取参数与Nginx

Docker 1.9卷在Mac OS上不能更新。 图片Nginx

同步获取Nginx版本?

厨师独奏错误Errno :: ENOENT:没有这样的文件或目录 – solo.rb

msg:ConnectionError(ProtocolError('Connection aborted。',error(2,'No such file or directory')),)

C中好奇的string复制函数

编辑:

由于阿列克谢十没有添加新的答案,我会编辑我的这个情况下给他更好的答案。

if ($http_user_agent ~ "MSIE [67].")

原始答案:

Nginx不允许多个或嵌套的if语句,但是你可以这样做:

set $test 0; if ($http_user_agent ~ "MSIE 6.0") { set $test 1; } if ($http_user_agent ~ "MSIE 7.0") { set $test 1; } if ($test = 1) { rewrite ^ ${ROOT_ROOT}ancIEnt/ last; }

它并不短,但它允许你做检查,并把重写规则只有一次。

总结

以上是内存溢出为你收集整理的如何在nginx“if”语句中使用“或”运算符?全部内容,希望文章能够帮你解决如何在nginx“if”语句中使用“或”运算符?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存