gpt4 book ai didi

caching - 如何检查值是否为Varnish中的数字?

转载 作者:行者123 更新时间:2023-12-03 17:46:07 25 4
gpt4 key购买 nike

Cookie字符串示例:

session=9urt2jipvkq77brfrf; MyId=124 ; PageId=134

我正在使用Varnish 4.1版。在下面的代码中,我从cookie字符串中提取 MyId(124)和 PageId(134)的值,然后检查值是否相同。如果是,请返回 pass,并且不提供缓存内容。问题在于,除非匿名访问者签名,否则他们将没有这两个Cookie,并且会意外地通过条件并且不会进行缓存,因为这两个值将使用 session=9urt2jipvkq77brfrf函数返回相同的值 regsub。我想确保两个值都完全是数字。有什么方便的功能吗?

代码:
if(req.http.Cookie){

set req.http.MyId = regsub(req.http.Cookie,".*MyId=(\d+).*","\1");

set req.http.PageId = regsub(req.http.Cookie,".*PageId=(\d+).*","\1");

if(req.http.MyId == req.http.PageId){

return (pass);
}

}

最佳答案

没有像“is_integer”之类的便捷功能。但是您可以使用正则表达式进行检查。

这将匹配任何数字序列:

req.http.MyId ~ "[0-9]+"

或者,您只能匹配3个数字:
req.http.MyId ~ "[0-9][0-9][0-9]"

关于caching - 如何检查值是否为Varnish中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34371793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com