Press "Enter" to skip to content

使用Nginx做网站中英文切换

有个老项目要做中英文切换,原本利用nginx ip地址库识别是否国外IP,以此依据跳到英文版。

现需改造成首次访问利用请求 accept-language: zh-CN,zh;q=0.9 判断,当用户选择中英文时设置cookie,由服务端nginx获取判断,跳转到响应URL。

以下写了简单的demo示例:

server {
    listen 8080;
    server_name  _;
    charset utf-8;

    default_type text/html;
    add_header Content-Type 'text/html; charset=utf-8';

    set $first_language $http_accept_language;
    if ($http_accept_language ~* '^(.{2}),') {
    	set $first_language $1;
    }

    set $lang 'en';
    if ($first_language = 'en') {
    	set $lang 'en';
    }
    if ($first_language != 'en') {
        set $lang 'zh';
    }

    location / {
            if ($cookie_lang = zh) {
                    return 200 "<h2>zh</h2> $cookie_lang";
            }
            if ($cookie_lang = en) {
                    return 200 "<h2>en</h2> $cookie_lang";
            }
            if ($lang = zh) {
                    return 200 "<h2>http_accept_language zh</h2>";
            }
            if ($lang = en) {
                    return 200 "<h2>http_accept_language en</h2>";
            }
            return 200 "<h2>default</h2>";
    }
}

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注