nginxでクエリパラメータをクッキーとして書き込む方法はありますか

nginxでクエリパラメータをクッキーとして書き込む方法はありますか

クエリパラメータを特定の URL の Cookie として設定する方法があるかどうか教えてください。

現在、varnish と nginx で問題が発生しています。utm パラメータが削除され、GA に問題が発生しているからです。utm パラメータを削除するコードは、varnish キャッシュがいっぱいになるため削除できません。そこで、utm パラメータを取得して、nginx 構成から 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, "[?|&]+$", "");
}

これは、vcl_recvVarnish 構成のルーチンで実装する必要があります。この方法では、表示される URL はブラウザ内でそのまま残ります (これは Google Analytics にとって重要です)。ただし、Varnish はこれらのパラメータなしで正規化された URL に基づいてリクエストし、キャッシュします (バックエンド、たとえば PHP の場合、これらのパラメータは破棄できます)。

関連情報