原文于 Change the domain name or rename my Discourse?,翻译于2015-04-10。
你可能想要改变你 Discourse 的域名,比如说:
talk.foo.com
→ talk.bar.com
让我们开始吧。
将你的 DNS 记录的 TTL 值降低,别忘记提前设置
你需要让每一个人知道你的域名即将更改了,所以将你的域名的 TTL 值降低至,比如说是 60 分钟吧。
提前几天做这事,可以让整个因特网都知道,这样域名的变更才能迅速生效。
在站点设置中删除关于老域名的信息
访问 /admin/site_settings
并搜索老域名。
如果你发现了老域名,确认一下已经修改了他们。
在 app.yml 修改域名
在 app.yml
编辑主机地址那一行:
## The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'talk.bar.com'
(如果你也使用了 CDN,先通过注释 将其先关闭。之后你就可以再把它开启。)
在更改之后,重建:
./launcher rebuild app
做完了之后,你的站点就可以通过新域名地址访问了。
修改 DNS 记录
-
关闭旧域名的解析记录
-
将新域名的 IP 地址指向 Discourse。
如果站点名字已经修改好,并且前面的重建过程正常完成,那么所有东西应该都正常了。
验证一下站点正常运行了,但是要做到这个,你得先登录,对吧?这让我们到了下一个环节…
修复第三方站点登录
你的 Twitter、Facebook、Google、Yahoo、GitHub、微博和 QQ 等第三方登录需要经过更改才能映射至新域名。在指南中找找对应的教程。
按照你的登录方式,你可能需要提前做好这件事,要么你就没法登录了。
将帖子中老的站点域名换至新域名
所有的帖子链接都指向了老域名。让我们修复它:
./launcher enter app
discourse remap talk.foo.com talk.bar.com
rake posts:rebake
这将让所有的帖子中的老 URL 指向新 URL,然后重建一遍帖子以防疏漏。
然后我们就搞定了!
(如果你用 CDN,别忘记再重新启用它)