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

标签 linux redirect nginx web http-status-code-301

我求助是因为我已经脑袋坏了,我不知道如何解决这个问题......

我从一个域移动到另一个域,我希望所有链接 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;
}

感谢帮助

最佳答案

您最后一次“返回 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;
  }
}

关于linux - nginx 将所有页面 301 重定向到另一个域/主页添加查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49254832/

相关文章:

c - C语言的Linux套接字编程,服务器套接字无法关闭

macos - 没有端口的本地名称解析 - MAMP Pro

php - .htaccess 如果文件存在则重定向

nginx - 为什么当我尝试挂载卷时 Docker 无法打开 nginx.conf?

linux - 为什么 date 命令不能识别我的变量?

linux - 有人可以告诉我错误在哪里吗

html - 使用 css 自动重定向带有转换的页面

nginx 代理 - 如何允许来自特定 IP 的连接

angularjs - 如何使用 nginx 和本地 tomcat 设置 grunt live-reload 任务

linux - Fedora 中的多线程