[!]小白请教一个 nginx 重定向问题

2021-02-23 17:00:42 +08:00
 zhuzhibin
server
    {
        listen 80;
        #listen [::]:80;
        server_name a.com b.com ;
    }

现在访问 a.com 会走 LB,443 转发到 80 端口。

现在是期望是期望访问 a.com 的所有链接都会 301 重定向到 b.com ,例如 a.com/xx->b.com/xx

我尝试了以下配置,但是发现有些问题,不生效,有些路径会永久重定向 a.com/a.com/a.com/xxx

  if ($host ~ "a.com") {
       return 301 https://b.com$request_uri;
    }
    
955 次点击
所在节点    问与答
4 条回复
zhuzhibin
2021-02-23 17:06:44 +08:00
滴滴滴 🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘
ysc3839
2021-02-23 17:22:16 +08:00
不同域名分成两个 server block,不要用 if 。
zhuzhibin
2021-02-23 17:48:21 +08:00
@ysc3839 我刚刚试了两个 server

```
server
{
listen 80;
#listen [::]:80;
server_name b.com ;
}

server
{
listen 80;
#listen [::]:80;
server_name a.com ;
return 301 https://b$request_uri;
}

```

上面这样会提示跨域问题
Origin a.com is not allowed by Access-Control-Allow-Origin.

然后我在下面 server 加了

```
add_header Access-Control-Allow-Origin *;

```

还是 GG 哦
zhuzhibin
2021-02-23 18:32:36 +08:00
已解决 ~ LB 有多台机器,没有踢完机器,只改了一台机器的配置

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

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

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

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

© 2021 V2EX