nginx根据浏览器语言和选择语言种cookie判断项目语


概述: 最近遇到一个nginx语言跳转的需求,需求一、用户打开网站首页默认将根据浏览器语言进行跳转; 需求二、如果用户在页面上选择了指定语言,那么将种下语言cookie,下次用户打开,默认将优先cookie种的指定语言。 需求三、如果项目中没有用户浏览器的对应语言,默认将选择英语版本。

注意:以下假设种的cookie名是lang .   下面为部分主要内容。


        if ($http_accept_language ~* ^en){
                        set $lang "/en";
        }
        if ($http_accept_language ~* ^ja){
                        set $lang "/ja;
        }
        if ($http_accept_language ~* ^cn){
                        set $lang "/cn";
        }
        if ($http_accept_language !~* ^(en|ja|zh)){
                        set $lang "/en";
        }

        location =/ {

        if ( $cookie_lang = "en" ){
                        set $cklang "/en";
        }
        if ( $cookie_lang = "ja" ){
                        set $cklang "/ja";
        }
        if ( $cookie_lang = "cn" ){
                        set $cklang "/cn";
        }
 
        if ( $cklang = '' ) {
                rewrite ^/(.*)$ https://$host$lang$1 permanent;
        }
 
        if ( $cklang != '' ) {
                rewrite ^/(.*)$ https://$host$cklang$1 permanent;
        }

        }
                location /en {
                        if ( $request_method = HEAD ) {
                        access_log off;
                }
                        try_files $uri /en/index.html;
                        add_header Cache-Control "no-cache, no-store";
                        add_header X-Frame-Options SAMEORIGIN;
                        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
                }
                location /ja {
                        if ( $request_method = HEAD ) {
                        access_log off;
                }
                        try_files $uri /ja/index.html;
                        add_header Cache-Control "no-cache, no-store";
                        add_header X-Frame-Options SAMEORIGIN;
                        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
                }
                location /cn {
                        if ( $request_method = HEAD ) {
                        access_log off;
                }
                        try_files $uri /cn/index.html;
                        add_header Cache-Control "no-cache, no-store";
                        add_header X-Frame-Options SAMEORIGIN;
                        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
                }









本文标签: nginx 语言选择 跳转 cookie

内容版权声明:【蓝色网居】部分资源来源于网络,如有侵犯您的所有权,请随时告知我们,我们将立即删除!感谢配合!

转载请注明出处:https://blog.ff56.cn/web/1679538633.html


【手机扫一扫查看文本】

手机扫一扫 手机扫一扫查看文本 手机扫一扫





恶意请求 nginx geoIP模块 接口请求 $host 跳转 错误页 扫描访问 nginx增加 日志分析 白名单 重写 404 统计 防IP恶意 编译安装 与(and) 访问控制 referer限制 large body 运算 错误日志 tcp代理 案例分析 geoip 参数重写 定义404跳转 四层 跳转rewrite ngx_cache_pu