You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Varnish正则表达式中插入变量?

Varnish正则匹配中嵌入变量的正确语法
  • 你当前的写法错误在于直接将变量req.http.yearMonthDay放在字符串字面量内,VCL不会解析这个变量,只会把它当作普通字符串进行匹配。
  • 正确的做法是使用VCL的字符串拼接操作符+,把正则的固定部分和变量拼接起来,示例如下:
if (req.url !~ "slreturn=" + req.http.yearMonthDay) {
    // 这里编写你的业务逻辑
}
  • 如果需要更复杂的正则规则,比如匹配变量值后跟随任意字符,同样可以通过拼接实现:
if (req.url !~ "slreturn=" + req.http.yearMonthDay + ".*") {
    // 这里编写你的业务逻辑
}
  • 额外提醒:建议先判断变量req.http.yearMonthDay是否存在且有有效值,避免因变量为空导致正则匹配异常:
if (req.http.yearMonthDay && req.url !~ "slreturn=" + req.http.yearMonthDay) {
    // 这里编写你的业务逻辑
}

内容的提问来源于stack exchange,提问作者Kari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 03:32:04