背景
プロジェクトの群衆が異なるパーソナライズページ(古いバージョン、ノーマルバージョン)作ったとして、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で再現