nginx 如何做多语言站点的跳转

2022-03-25 10:57:55 +08:00
 aries910

假设有站点 aa.com ,并且有前后台,

在服务器上部署了两套相同站点端口分别 5000 和 5001 ,对应了语言是 en 和 zh, 有没有办法在访问 aa.com/en 跳转 5000 端口的站点,aa.com/zh 跳转 5001 的站点 同样的访问 aa.com/en/admin 访问的是 5000 端口的站点后台,aa.com/zh/admin 是 5001 端口的站点后台,

主要就是域名后面的地址怎么保留传递到端口后的站点上,

求大佬指教下,怎么写 nginx 的配置文件

1420 次点击
所在节点    问与答
6 条回复
yaott2020
2022-03-25 10:58:50 +08:00
就不能做成一个站点,然后内置语言切换吗
aries910
2022-03-25 11:00:15 +08:00
@yaott2020 改别人的代码。。。作为一个程序员,应该不用多说了吧。。。。
yaott2020
2022-03-25 11:02:20 +08:00
那当我没说😂
rrfeng
2022-03-25 11:04:53 +08:00
location /zh {
rewrite ^/zh/(.*)$ /$1 break; # 如果后端 url 不带 /zh 的话。否则不需要
proxy_pass http://localhost:5000;
}
aries910
2022-03-25 11:34:19 +08:00
@rrfeng 请问下,这样是不是把作为 prefix 的语言 /en /zh 这段地址一起转发给了后端的站点啊?
jifengg
2022-03-25 11:46:34 +08:00
location /zh/ {
proxy_pass http://127.0.0.1:5000/;
}

区别就是,后面都多了 /做结尾。
可以 google 一下 nginx 的 localtion 斜杠的区别。

访问 /zh/admin 时,被代理端(也就是监听 5000 的程序)只知道有人访问了 http://127.0.0.1:5000/admin ,不知道还有 /zh 这一段

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/842798

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX