nginx 将 301 所有页面重定向到另一个域/主页添加查询字符串

Ser*_*she 3 linux redirect nginx http-status-code-301 web

我请求帮助,因为我已经伤透了头,我不知道如何解决问题......

我从一个域移动到另一个域,我希望所有链接 301 重定向到新域,但到主页我想添加查询字符串,如 ?from=example.com (仅适用于主页)。

https://example.com 301 -> https://newdomain.com/?from=example.com

所有其他链接都只是重定向 301,例如https://newdomain.com $request_uri;

我尝试过,但它不起作用

    server {
    listen 443 ssl;
    server_name  example.com www.example.com;

    location = / {
    return 301 https://newdomain.com/?from=example.com;
    }

    return 301 https://newdomain.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)

感谢帮助

Ger*_*lle 7

您最后的“return 301”推翻了该位置内的内容。

server {
  listen 443 ssl;
  server_name  example.com www.example.com;

  location = / {
    return 301 https://newdomain.com/?from=example.com;
  }

  location / {
    return 301 https://newdomain.com$request_uri;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • “= /”匹配根请求,例如“httpl//www.example.com/”,“/”匹配每个请求(它们都以“/”开头)。 (3认同)