微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx代理或重写取决于用户代理,没有if

我需要根据用户代理提供不同的文件.这是一个非常基本的要求,比提供文件提高了一步.

standard answer似乎是,使用if语句.

然而,它显然是众所周知的if statements shouldn’t be used.

所以现在答案似乎是Apache,但我告诉我的老板Nginx一个有用的产品.有什么建议?

解决方法:

如果你仔细阅读if is evil,你会发现它有以下引用:

The only 100% safe things which may be done inside if in location context are:
return ...;
rewrite ... last; 

Anything else may possibly cause unpredictable behavIoUr, including potential
SIGSEGV. 

所以…

if的邪恶只适用于在一个位置块内使用

一个位置块内,有两个,只有两个,保证使用if块:

>一个人独自回归……;声明
>一个人持有一个单独的重写…最后;声明
>(注意一个空的if块也会导致问题)

在位置块中if的非保证使用可能有效,但需要进行测试

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐