使用 nginx 位置块从 fastcgi 缓存中排除某些文件时出现问题

使用 nginx 位置块从 fastcgi 缓存中排除某些文件时出现问题

我已经搜索并尝试了很多次迭代 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 文件,但我首先尝试使用更简单的行来工作。

我做错了什么?我该如何排除这些文件(位于根文件夹中)?感谢您的帮助。

相关内容