我想问一下有没有办法将查询参数设置为某个url的cookie?
目前,我在使用 varnish 和 nginx 时遇到了问题,因为它会剥离 utm 参数,从而导致 GA 出现问题。我无法删除剥离 utm 参数的代码,因为它会淹没 varnish 缓存。所以我想从 nginx 配置中获取 utm 参数并将其设置为 cookie
任何帮助,将不胜感激
太感谢了
答案1
您可以轻松地从 Varnish 从后端获取的 URL 中删除 Google 营销 URL 参数,例如描述在这里:
if (req.url ~ "(\?|&)(gclid|utm_[a-z]+)=") {
set req.url = regsuball(req.url, "(gclid|utm_[a-z]+)=[-_A-z0-9+()%.]+&?", "");
# remove trailing question mark and ampersand from URL
set req.url = regsub(req.url, "[?|&]+$", "");
}
这必须在 Varnish 配置例程中实现vcl_recv
。这样,您在浏览器中看到的 URL 保持不变(这对 Google Analytics 很重要),但 Varnish 将基于不带这些参数的规范化 URL 进行请求和缓存(对于后端,例如 PHP,这些参数可以被丢弃)。