为域名添加www

我已使用 Digital Ocean 设置了 Discourse 社区,但域名是“裸”的,仅为 https://example.com。我想添加 www.,但在 DNS 设置方面不太确定!

目前我有一个指向 IP 地址的“A”记录和一个指向它的 www. 的“CNAME”记录。是否只需将 www. 更改为“A”记录并删除 CNAME 即可?或者也许它们都是“A”记录?或者 Discourse 本身是否有简单的设置可以选择域名的显示方式?

有趣的是,我有一个普通的 Wix 网站,其配置似乎相同,有一个裸的 A 记录和 www. CNAME,在浏览器中显示为 www.——所以我不太确定是什么让它显示成那样。

我保证我已尽力进一步学习 DNS,但完全感到困惑!

非常感谢您在添加 www. 方面的任何帮助!:slight_smile:

2 个赞

首先,创建一个 DNS 记录,如下所示:

TYPE:             CNAME
HOST:             WWW
POINTS TO:        @

然后请遵循本指南:

3 个赞

非常感谢您提供这些信息——我通过重新运行您文章中的 discourse-setup 脚本,已成功在 www. 上使其正常工作,但现在裸域不再有效!有没有办法也能让裸域生效——或者至少自动填写 www.?

我现在有一个将裸域链接到 IP 地址的 A 记录
一个将 www. 链接到裸域的 CNAME 记录

非常感谢!

1 个赞

简单的方法是 forcewww.com。更难的是为多个域设置 Let’s Encrypt

2 个赞

感谢您提供的信息——我已经阅读了这两个选项,但我想知道,为什么我不能简单地使用 301 重定向将裸域重定向到 www.?这值得一试吗,还是我会违反 DNS 法规?

2 个赞

这两种方法都为第二个(子)域名提供了 letsencrypt 证书。将额外信息添加到 app.yml 可以使同一个证书同时覆盖两个域名地址,而 forcewww.com 具有一些特殊功能,可以动态处理,因此您无需担心:

2 个赞

好的,听起来我应该直接使用 forcewww。我可以确认一下吗(抱歉,我对此完全不了解)——他们是要求我将 www 设置为指向我的服务器 IP 的 A 记录,并将裸域设置为指向他们提供的 IP 地址的 A 记录?所以没有 CNAME?

我现在的情况:
指向服务器 IP 的裸域的 A 记录
指向裸域的 www 的 CNAME 记录

使用 ForceWWW 提出的更改:
指向 forcewww IP 的裸域的 A 记录
指向我的服务器 IP 的 www 的 A 记录

1 个赞

我认为就是这样工作的。:+1:

1 个赞

谢谢!我已经设置好了——还没有生效(输入的是裸域名),但可能需要几个小时才能生效,所以我会等等看!

2 个赞

太好了,我想它奏效了!非常感谢您的所有帮助!

3 个赞

不幸的是——这不知怎么地破坏了电子邮件系统——网站无法通过 Mailgun 发送任何电子邮件。这是否可能是因为强制 www——因为主机现在是通过他们的服务器?或者我需要更新 Mailgun 来指定 www?主啊,赐予我力量。

1 个赞

您需要将 DISCOURSE_NOTIFICATION_EMAIL 更改为 noreply@baredomain.com。我会编辑 yml 文件并销毁然后重新启动容器。

1 个赞

谢谢 - 我重置了 smtp 密码,然后再次运行了 discourse 设置脚本,这似乎解决了问题!我不知道如何或为何,但它奏效了,所以我不会再碰它了!

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.