我正在尝试将regex应用于传入请求的req.url但是我需要测试完整路径(我正在测量来自根的段)
从阅读清漆手册看来,我可以使用hash_data()内置函数来执行此操作,所以我在vcl_recv中尝试这个。
std.syslog(180, hash_data(req.url));
if(req.url ~ "(?=io\/page\/)([^=]*).([^*]*)")
{
// do some regsub
}
然而,重新加载清漆配置失败......
来自VCC编译器的消息: 未找到符号:'hash_data'(预期类型为STRING_LIST):
有人在这里发现了这个问题吗?
答案 0 :(得分:0)
您的req.url已包含完整路径。如果需要,您的req.http.host将包含主机。我不知道你认为hash_data为你的任务服务的目的是什么。
您的错误来自hash_data未在当前上下文中定义(除了vcl_hash之外的任何地方)。它的目的是添加要添加的请求的其他方面(默认为host和url)以使缓存条目唯一。例如,如果您希望自定义标头的不同值来提供不同的缓存条目。换句话说,它应该与你的问题无关。