我需要提供不同的文件,具体取决于用户代理。这是一个非常基本的要求,完全不再提供文件。
standard answer似乎是,使用if
声明。
然而,显然众所周知if
statements shouldn't be used。
所以现在的答案似乎是Apache,但我告诉我的老板nginx是一个有用的产品。有什么建议吗?
答案 0 :(得分:2)
如果您仔细阅读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
- 块中,有两个,只有两个,保证使用if
块:
return ...;
声明rewrite ... last;
声明if
块也可能导致问题)位置块中<{1}}的无保证保存使用可能有效,但需要进行测试