我需要根据用户代理提供不同的文件。这是一项非常基本的要求,比提供文件更上一层楼。
标准答案似乎是,使用声明if
。
if
但是,不应该使用语句显然是众所周知的。
所以此时的答案似乎是 Apache,但我告诉我的老板 nginx 是一个可用的产品。有什么建议么?
我需要根据用户代理提供不同的文件。这是一项非常基本的要求,比提供文件更上一层楼。
标准答案似乎是,使用声明if
。
if
但是,不应该使用语句显然是众所周知的。
所以此时的答案似乎是 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
只适用于在一个位置块内使用
在location
-block 内,有两个,并且只有两个,保证了一个if
块的保存用途:
return ...;
声明的人rewrite ... last;
声明的人if
块也可能导致问题)if
在位置块中的非保证保存使用可能有效,但需要进行测试