location / {
try_files "/wp-content/cache/all/${uri}index.html" $uri $uri/ /index.php?q=$uri&$args;
}但是如果使用可视化编辑器,我不想使用缓存。所以应该是
location / {
if ($args ~ visual-editor){
try_files $uri $uri/ /index.php?q=$uri&$args;
}
try_files "/wp-content/cache/all/${uri}index.html" $uri $uri/ /index.php?q=$uri&$args;
}但是它不起作用,因为nginx对apache吐露的人来说是限制性的和奇怪的。
我尝试了命名位置,我尝试了一个子位置来使它对使用try_files感到高兴,我不想重写,使用带有命名位置的错误代码黑客会导致查询参数被删除,而这是不可能发生的。
这个想法很简单,如果我定义了一些排除,就不要加载缓存的html文件。但是似乎什么都没有用,互联网给出的答案永远不会回答我的问题,所以在这里问。
发布于 2019-01-28 12:03:46
您不能将try_files放入if块,但是可以在if块中设置一个变量,并使用它使try_files语句的第一个项失效。
例如:
server {
...
set $cache /wp-content/cache/all;
if ($args ~ visual-editor) { set $cache /nonexistent; }
location / {
try_files $cache${uri}index.html $uri $uri/ /index.php?q=$uri&$args;
}
...
}关于if的使用,请参阅D6。
https://serverfault.com/questions/951063
复制相似问题