2011-12-13 73 views
3

我正在使用光油2.0.6,我很難找到好的文檔來編寫vcl_hash函數。光油vcl_hash刪除參數

我需要在緩存之前從我的API的URL中刪除一些參數。特別是傳遞給追蹤分析但不改變結果的用戶標識。

URL: /api/browse?node=123&userid=3432432564363 

我寫了這一點,但如果vcl_hash功能需要與「哈希」或「回報(散)」或沒有結束它不是楔子我,如果我需要處理所有的情況下,或者只是我的特殊情況。我不清楚我是覆蓋方法還是擴展它。

我:

sub vcl_hash { 
    if (req.url ~ "^/api/browse") { 
    set req.hash += regsuball(req.url,"&userid=([A-z0-9]+)",""); 
    } 
    hash; 
} 

它是否失去了一些東西?

回答

0

我測試了幾件事情,而這一次似乎工作:

sub vcl_hash { 
    if (req.url ~ "^/api/browse") { 
    set req.hash += regsuball(req.url,"&userid=([A-z0-9]+)",""); 
    } else { 
    set req.hash += req.url; 
    } 
    set req.hash += req.http.host; 
    hash; 
} 

所以看起來你也必須處理當你重寫vcl_hash默認情況下。

+2

我仍然不明白爲什麼我必須使用「req.hash + =」就像我追加了一些現有的值。什麼值? – robsf 2011-12-14 02:59:32