zhuzhibin
V2EX  ›  问与答

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

  •  
  •   zhuzhibin · Feb 23, 2021 · 1415 views
    This topic created in 1907 days ago, the information mentioned may be changed or developed.
    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 replies    2021-02-23 18:32:36 +08:00
    zhuzhibin
        1
    zhuzhibin  
    OP
       Feb 23, 2021
    滴滴滴 🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘🚘
    ysc3839
        2
    ysc3839  
       Feb 23, 2021 via Android
    不同域名分成两个 server block,不要用 if 。
    zhuzhibin
        3
    zhuzhibin  
    OP
       Feb 23, 2021
    @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
       Feb 23, 2021
    已解决 ~ LB 有多台机器,没有踢完机器,只改了一台机器的配置
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 17:25 · PVG 01:25 · LAX 10:25 · JFK 13:25
    ♥ Do have faith in what you're doing.