美文网首页开发经验随笔程序员技术干货
在nginx中依据cookie进行个性化重定向

在nginx中依据cookie进行个性化重定向

作者: 山东大葱哥 | 来源:发表于2017-09-05 09:35 被阅读28次

    背景

    项目中根据人群做了不同的个性化版面(老年版、正常版),为减少代码侵入性,新的版面采用新建文件的形式进行开发部署,经过山东大葱哥思考决定采用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;     
        }
    

    学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入技术爱好者交流群373107565,我们一起学技术!

    相关文章

      网友评论

        本文标题:在nginx中依据cookie进行个性化重定向

        本文链接:https://www.haomeiwen.com/subject/kaxujxtx.html