不知道是不是这样写啊 有必要在判断ip么
测试发现这个取的是浏览器第一个语言 而不是浏览器设置的什么语言
- location / {
- if ($http_accept_language ~* ^zh) {
- set $lang zh_cn;
- rewrite (.*) https://zh.xxx.com$1 permanent;
- break;
- }
- if ($http_accept_language ~* ^en) {
- set $lang en_us;
- rewrite (.*) https://en.xxx.com$1 permanent;
- break;
- }
- if ($http_accept_language ~* ^ja) {
- set $lang ja-jp;
- rewrite (.*) https://ja.xxx.com$1 permanent;
- break;
- }
- }
复制代码
广西网友:
- location / {
- # 用一个不加判断的做默认值
- set $lang zh_cn;
- if ($http_accept_language ~* ^en) {
- set $lang en_us;
- }
- if ($http_accept_language ~* ^ja) {
- set $lang ja-jp;
- }
- return 301 https://$lang.xxx.com$request_uri;
- }
复制代码
河南网友:大佬 这个 不加判断的做默认值 这个有什么用啊
这个是 英文和日文分别跳到 en_us.xxx.com 和 ja-jp.xxx.com 中文的不跳么
江西网友:我用中文的浏览器就不能看英文的啦?选择权应该交给浏览者.
山西网友:不如做个模板切换呢 除非你要区分地区的客户来开设对应的站点
辽宁网友:
现在所有用户都在一个域名 我想把中文用户 重新分配到一个域名
青海网友:今天梳理甲方站点时候发现人家门户就是不同语言不同域名不同服务器,,
上海网友:这个意思是,英文的跳英文,日文的跳日文,其它的都跳中文。
如果不加默认值,那法文的,德文的来了怎么办?
北京网友:插一句,有个 map 函数挺好用的
http://nginx.org/en/docs/http/ngx_http_map_module.html