2015-10-07 30 views
0

我试图将正则表达式应用于req.url的传入请求,但是我需要测试完整路径(我从根测量段)光油3.0.2找不到符号:'hash_data'

从阅读清漆手册它似乎我可以使用hash_data()inbuilt函数来做到这一点,所以我在vcl_recv中尝试这个。

std.syslog(180, hash_data(req.url)); 

    if(req.url ~ "(?=io\/page\/)([^=]*).([^*]*)") 
    { 
     // do some regsub 
    } 

然而清漆配置的重新加载失败......从VCC编译

消息: 找不到符号: 'hash_data'(预计类型STRING_LIST):

任何人发现这里的问题?

回答

0

您的req.url将包含完整路径。如果需要,您的req.http.host将包含主机。我不知道你会认为hash_data为你的任务服务的目的是什么。

您的错误来自未在当前上下文中定义的hash_data(在vcl_hash中的任何地方)。它的目的是添加要添加的请求的其他方面(默认为host和url)以使缓存项唯一。例如,如果您希望自定义标头的不同值可以给出不同的高速缓存条目。换句话说,它应该与你的问题无关。