如何创建301重定向到新域名

我正在编辑 nginx.conf。我想将 domain1.com 的所有页面重定向到 domain2.com

如何编辑该文件使其生效?

我看到这样一行:

if($http_host != domain1.com){
   rewrite (.*) https://domain1.com$1 permanent;
}

如果我将 if 语句中的“!=”改为“=”,并将 rewrite 目标改为新域名,这样能行吗?还是说需要确保其他内容也进行相应修改?

示例:

if($http_host = domain1.com){
   rewrite (.*) https://domain2.com$1 permanent;
}

通常,我会这样配置:

server {
    listen 80;
    server_name domain1.com;
    return 301 https://domain2.com$request_uri;
}

上述指令可以通过多种方式进行调整,以更好地满足您的需求。

谢谢,我有几个问题。

我的配置文件中包含以下行:

server {
   listen 80
    return 301 https://domain1.com$request_uri
}

我不确定为什么默认会存在 301 重定向。我是应该覆盖它,还是在我提供的配置之上或之下创建一个新的?server_name 是必需的吗?

如果重定向所有内容,是否会破坏 Let’s Encrypt 的续期流程?

您是在 Discourse 容器内编辑 nginx.conf,还是在外部 nginx 反向代理上编辑?

如果是容器内部,您应该在 app.yml 文件中进行相应配置。网上有多个示例可供参考。

如果您是在外部 nginx 反向代理上操作,可以在 /etc/nginx/conf.d 目录下创建一个新文件(例如 redirect.conf),并填入我提供的配置示例。

在容器内部。我将搜索 app.yml 的解决方案。我看到一个针对文件夹的方案,希望也能找到针对域名更改的方案。谢谢。

你试过这个吗?

好的,稍后会实施。非常感谢您的时间。

@itsbhanusharma 我正在实施代码。我的问题是,既然我打算在 Google 更新 URL 之前暂时保留旧服务器,Let’s Encrypt 能否自动续期?由于这个 301 重定向变更,我是否需要添加任何配置以防止 Let’s Encrypt 续期失败?

Set up Let’s Encrypt with multiple domains / redirects 这个方案可行吗?

我想将 .well-known/acme-challenge 排除在重定向之外。

参考这个关于 301 重定向与 Let’s Encrypt 的 问题