Idan
1
我正在编辑 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;
}
上述指令可以通过多种方式进行调整,以更好地满足您的需求。
Idan
3
谢谢,我有几个问题。
我的配置文件中包含以下行:
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),并填入我提供的配置示例。
Idan
5
在容器内部。我将搜索 app.yml 的解决方案。我看到一个针对文件夹的方案,希望也能找到针对域名更改的方案。谢谢。
Idan
8
@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 的 问题。