nginxのクッキーの取り扱い

背景

プロジェクトの群衆が異なるパーソナライズページ(古いバージョン、ノーマルバージョン)作ったとして、GESIテストはクッキー+ nginxの方法を使用することを決めた山東ネギを通じて、侵襲的なコードを削減するために、新しいファイルの開発と展開の形で新しいレイアウトを行ってパーソナライズされたリダイレクト。

アイデアの実現

変装した場合にネストされた愚かな方法で、

    set $isOld "false";
    set $isOldRewrite "0";
    if ( $http_cookie ~* "isOld=(.+)(?:;|$)" ) { 
        $isOld $1;  #获取cookie的值并赋给变量,前提该cookie存在
    }
    if ( $isOld = "true" ){
        set $isOldRewrite "1";  
    }   
    if ( $request_uri ~ ^/index.html) {
        set $isOldRewrite "${isOldRewrite}1"; 
           //根据页面url给 变量赋予不同的值,形如 11 12 13  01等等,以0开头的不进行重写
    }
    if ( $isOldRewrite = "11"){ 
        rewrite ^\/index.html /oldIndex.html;
    }

アイデア2の実現

決定するために正規表現を使用していますエレガントなソリューション

    if ( $http_cookie ~* "isOld=true(?:;|$)" ) {
        rewrite ^\/index\.html /oldIndex.html last;     
    }

ます。https://www.jianshu.com/p/9f93efcdd5b6で再現

おすすめ

転載: blog.csdn.net/weixin_33827590/article/details/91140671