开发经验随笔码农的世界程序员

nginx中处理cookie

2019-06-03  本文已影响3人  山东大葱哥

背景

项目中根据人群做了不同的个性化版面(老年版、正常版),为减少代码侵入性,新的版面采用新建文件的形式进行开发部署,经过山东大葱哥思考决定采用cookie+nginx的方式进行个性化重定向。

实现思路一

笨方法,变相if嵌套

    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;
    }

实现思路二

优雅解决方案,使用正则表达式判断

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

猜你喜欢

热点阅读