亲爱的 Discourse 专家:
我们运营一个 Discourse 论坛(DOMAIN1)已有三年。现在,我们希望扩大讨论范围并添加 DOMAIN2。多亏 这篇帖子,我们成功让两个域名都通过 Let’s Encrypt 激活了。我们将保持两个域名都处于活动状态(这在执行该帖子的第 1 步后已实现)。第二个域名会被重定向到主域名,这很好。
过渡的一部分是将所有现有分类移动到一个新的顶级分类下。
DOMAIN2 将成为主要的 Discourse 域名,而 DOMAIN1 将保持链接状态,以便外部链接到帖子的地址仍然有效。
问题是:当直接访问“原生”DOMAIN1(即仅根 URL,无路径)时,如何添加一个重定向到新的顶级分类 URL?其他带有路径的 DOMAIN1 访问应保留现有路径(无需更改,目前已正常工作)。这样做可以最大限度地减少混淆,因为所有访问 DOMAIN1 的用户都会进入该分类,整体体验与之前保持一致。
希望有人能就如何在双域名设置下实现这种条件重定向提出建议。
谢谢!
Merten
1 个赞
riking
(Kane York)
2
您将面临困难:单个 Discourse 实例无法在多个 URL 下运行;且对于现有路由(如主题查看),固定链接重定向功能无法生效。
4 个赞
你的意思是,没有简单的方法实现以下操作吗?
(1) 访问 domain1.com,它运行着 Discourse(主主机名为 domain1.com - 已生效)
(2) 访问 domain2.com,它跳转到 domain1.com/c/example/18(这也是我们想要的)
(3) 访问 domain2.com/t/topic/1,它显示 domain1.com/t/topic/1 或 domain2.com/t/topic/1(当前已生效)
我们正在进行过渡,希望仅将 domain2.com 的根路径重定向到一个分类。是否有某种 URL 重写可以实现这一点?
1 个赞
riking
(Kane York)
4
如果 domain2 仅提供重定向规则,那么是的,您可以编写 nginx 配置来实现;具体细节不在 Meta 的讨论范围内。
2 个赞
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
5
站点地图插件 能否作为 nginx 302 重定向 的原始数据?
1 个赞
我们通过向 web.ssl.template.yml 文件添加以下内容使其正常工作:
if ($host = domain2.com) {
rewrite ^/$ /c/example/18 permanent;
}
2 个赞
riking
(Kane York)
7
请将该内容移至您的 app.yml 中的 replace 指令,否则未来的升级将会给您带来麻烦!
3 个赞