2

我有这个网址:

http://my.api.com/v1/{api_key}/{user_token}/?someparam=hello&force=true&someotherparam=world

api_keyuuid在哪里user_token

如何提取force查询参数的值,如果缺少强制参数或将其设置为 false,则从清漆缓存中进行查找。如果它设置为 true,我需要访问我的后端服务器。查询参数可以是任何顺序。

4

3 回答 3

2

我建议你颠倒逻辑:

sub vcl_recv { 
    if (req.url ~ "(?i)force=(true|yes)") {
        return(pass);
    }
    // other values will fall through to the safe default VCL that will do return(lookup).
}
于 2012-12-05T13:49:47.050 回答
1

类似于 Ikarsten 的答案,但不匹配 xxxtoken 参数。

sub vcl_recv { 
    if (req.url ~ "(\?|\&)token=") {
        return(pass);
    }
}
于 2016-11-03T14:54:33.227 回答
-1

在您的 vcl_recv 中,您可以使用以下内容检查不存在的 force= 或 force=true :

 if(!req.url ~ "&|\?force=" || req.url ~ "&|\?force=true") {
     return(pass);
 }
于 2012-12-05T13:38:36.913 回答