16

我在使用 Heroku 和 Google Domains 的网络浏览器中加载了一个域。现在域加载了 www: http://www。XXX.com。

如果我输入不带 WWW 的 URL,例如 http:// XXX .com,我会在 Chrome 中收到以下错误:“找不到 XXX.com 的服务器 DNS 地址”

我需要做什么才能发生以下情况:

  1. 这加载 - http://mydomain.com
  2. http://www。mydomain.com 重定向到 http://mydomain.com

谢谢

4

3 回答 3

20

建议将www子域设置为此处的默认值,以便根/裸域重定向到www. 这符合Heroku 的建议,其中指出:

为获得最大的可扩展性和弹性,应用程序应避免使用 DNS A 记录,而是使用支持顶级 CNAME 功能的 DNS 提供商,或仅使用子域

您可以使用 Google Domains 合成记录实现此目的:

  • 转到合成记录部分
  • 选择子域转发
  • 输入@子域和www.xyz.com目标
于 2017-04-04T09:26:15.793 回答
3

另一种解决方案是使用 Cloudflare 等第三方 DNS 提供商来执行此操作。我刚刚经历了同样的过程。应用托管在 Heroku 上,域名从 Google 购买。在 Cloudflare 注册了一个免费帐户,并按照本指南在大约一个小时内启动并运行:https: //support.cloudflare.com/hc/en-us/articles/205893698

我做的事情:

  • 删除我之前尝试在“自定义资源记录”下添加到 Google 的 DNS 规则
  • 在 Heroku 中只为根添加了一个域:“myapp.com”(不是“www.myapp.com”,不是“*.myapp.com”),它给了我一个像“blah-blah-12345-herokudns”这样的 DNS 地址.com”
  • 在 Cloudflare 中,在 DNS 页面上添加两条 CNAME 记录:

    1. CNAME "myapp.com" blah-blah-12345-herokudns.com
    2. CNAME "www" blah-blah-12345-herokudns.com
  • 从 Cloudflare 将自定义 DNS 名称服务器复制到 Google

在那之后,我现在可以去myapp.com,它就可以工作了。超级激动,因为我真的不想要www.myapp.com

一件很酷的事情是我已经为该域设置了一个 GSuite 帐户,当我注册 Cloudflare 时,它​​从 Google 导入了所有 DNS 规则,包括电子邮件的 MX 记录,因此它可以无缝运行。

于 2020-01-26T21:10:19.857 回答
1

恕我直言,您应该:

1/ 将您的 heroku 域设置为http://example.com。所有信息都在Heroku 文档中。

Heroku 应该使用http://example.com为您的网站提供服务。

2/ 您需要在 Google Domains 中将您的http://www.example.com重定向到http://example.com。为此,您需要在网站选项卡下的 Google 域控制台中设置网络转发。文档很简单。

任何http://www.example.com请求都应该转发到http://example.com

更新

由于您的需要,我想知道是否最好不要禁用裸到 www 重定向,让两个域都指向您的 heroku 实例并为它们获取 SSL 证书(使用 let's encrypt 让事情变得简单)。

这是一个教程

我希望这有帮助!

于 2017-04-04T04:43:11.600 回答