V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhuzhibin
V2EX  ›  问与答

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

  •  
  •   zhuzhibin · 2021-02-23 17:00:42 +08:00 · 964 次点击
    这是一个创建于 1402 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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;
        }
        
    
    4 条回复    2021-02-23 18:32:36 +08:00
    zhuzhibin
        1
    zhuzhibin  
    OP
       2021-02-23 17:06:44 +08:00
    滴滴滴 🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘
    ysc3839
        2
    ysc3839  
       2021-02-23 17:22:16 +08:00 via Android
    不同域名分成两个 server block,不要用 if 。
    zhuzhibin
        3
    zhuzhibin  
    OP
       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
        4
    zhuzhibin  
    OP
       2021-02-23 18:32:36 +08:00
    已解决 ~ LB 有多台机器,没有踢完机器,只改了一台机器的配置
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1245 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:30 · PVG 07:30 · LAX 15:30 · JFK 18:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.