Removendo os pares de atributo / valor de querystring, para que o verniz não varie o cache por eles

Meu objetivo é "colocar na lista de permissões" certos atributos de querystring e seus valores, para que o verniz não varie o cache entre os URLs.

Exemplo:

Url 1: http://foo.com/someproduct.html?utm_code=google&type=hello  
Url 2: http://foo.com/someproduct.html?utm_code=yahoo&type=hello  
Url 3: http://foo.com/someproduct.html?utm_code=yahoo&type=goodbye

No exemplo acima, eu quero whitelist "utm_code", mas não "tipo" Então, depois que o primeiro URL é atingido, eu quero verniz para servir o conteúdo em cache para o segundo url.

No entanto, no caso da terceira url, o valor do "tipo" do atributo é diferente, portanto, deve ser um erro de cache do verniz.

Eu tentei os dois métodos abaixo (encontrados em um artigo de ajuda do drupal que não consigo localizar agora) que não pareciam funcionar. Pode ser porque eu tenho o regex errado.

# 1. strip out certain querystring values so varnish does not vary cache.
set req.url = regsuball(req.url, "([\?|&])utm_(campaign|content|medium|source|term)=[^&\s]*&?", "\1");
# get rid of trailing & or ?
set req.url = regsuball(req.url, "[\?|&]+$", "");

# 2. strip out certain querystring values so varnish does not vary cache.
set req.url = regsuball(req.url, "([\?|&])utm_campaign=[^&\s]*&?", "\1");
set req.url = regsuball(req.url, "([\?|&])foo_bar=[^&\s]*&?", "\1");
set req.url = regsuball(req.url, "([\?|&])bar_baz=[^&\s]*&?", "\1");
# get rid of trailing & or ?
set req.url = regsuball(req.url, "[\?|&]+$", "");

questionAnswers(7)

yourAnswerToTheQuestion