Varnish中regsuball函数的作用、参数用法及在线测试工具咨询
Varnish regsuball 函数使用说明
内部运行逻辑
regsuball是VCL提供的全局正则替换函数,区别于仅替换第一个匹配项的regsub函数,它会扫描整个输入字符串,对所有符合正则规则的匹配项执行替换操作,直到字符串中不存在新的匹配项为止。
三个参数的调用规则
str:必填参数,待处理的原始字符串,一般为请求URL、请求头、响应头等VCL中可调用的字符串类型变量。regex:必填参数,用于匹配的正则表达式,遵循POSIX正则语法,默认区分大小写,可在正则开头添加(?i)标记实现大小写不敏感匹配,正则特殊符号需要提前转义。sub:必填参数,替换用的目标字符串,可填写固定文本,也可通过$1、$2等占位符引用正则捕获组匹配到的内容,$0指代正则匹配到的完整片段。
调用示例
将请求URL中所有连续的正斜杠替换为单个正斜杠:regsuball(req.url, "/+", "/")
输入///product//detail/123///,输出结果为/product/detail/123/
测试环境说明
目前没有公开的在线专属regsuball测试沙箱,你可以在本地安装极简版Varnish环境,编写最小测试用VCL配置,通过自定义响应头或者日志输出替换结果来验证逻辑。也可以先使用支持POSIX正则的全局替换工具完成正则逻辑预验证,再放到VCL正式环境中测试。
内容的提问来源于stack exchange,提问作者Tatiana
相关产品推荐
相关产品推荐

