我已经搜索并尝试了很多次迭代 nginx 位置块来从 fastcgi 缓存中排除某些文件,但我无法让它工作。我知道使用位置块比 if 语句更好,这就是我尝试这样做的原因。我想排除某些 .php 文件被缓存。我尝试了很多次这样的迭代,但无济于事:
location ^(reports|purge|renewalemail|renewalcriteria).php$ {
set $skip_cache 1;
}
我也尝试过在服务器块之外使用 map 指令:
map $request_uri $skip_cache {
# Enable caching in general
default 0;
# disable it for these URLs
"/log/" 1;
"~*/login.php" 1;
# or use regular expressions
"/(reports|purge|renewalemail|renewalcriteria|login)\.php$" 1;
}
我尝试了上述许多不同版本,例如,不使用正则表达式,像"/login.php" 1;
或"login.php" 1;
,但都没有成功。最终,我想使用底线来包含我想要跳过缓存的所有 php 文件,但我首先尝试使用更简单的行来工作。
我做错了什么?我该如何排除这些文件(位于根文件夹中)?感谢您的帮助。