我有这个网址:
http://my.api.com/v1/{api_key}/{user_token}/?someparam=hello&force=true&someotherparam=world
其中api_key
和user_token
是uuids
如何提取force
查询参数的值,如果强制参数丢失或者设置为false,则从varnish缓存中查找。如果设置为true,我需要点击我的后端服务器。查询参数可以按任何顺序排列。
答案 0 :(得分: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).
}
答案 1 :(得分:1)
与Ikarsten的答案类似,但与xxxtoken参数不匹配。
sub vcl_recv {
if (req.url ~ "(\?|\&)token=") {
return(pass);
}
}
答案 2 :(得分:-1)
在你的vcl_recv中你可以用以下内容检查不存在的force =或force = true:
if(!req.url ~ "&|\?force=" || req.url ~ "&|\?force=true") {
return(pass);
}