如何将我的域名从 hostgator 指向 heroku

Posted

技术标签:

【中文标题】如何将我的域名从 hostgator 指向 heroku【英文标题】:How do I point my domain name from hostgator to heroku 【发布时间】:2016-08-02 12:20:00 【问题描述】:

我正在尝试将我的 hostgator 域名指向我的 heroku 应用程序,但是当我尝试管理我的域名时,我不断收到错误消息。

An error occurred. Please verify the validity of your nameservers and try again.

我已经在站点仪表板 > 设置中将域名添加到 heroku。我的应用程序是免费的,我已准备好升级并为完整版付费。我一直在弄清楚一些事情,我准备部署。为此,我必须将我的域名指向 heroku。我知道我错过了一些东西。我已经阅读了很多文档,但并不是很清楚。我知道这是我想念的简单的东西。提前致谢

编辑。我不希望我的域成为子域。我希望它成为主域。因为您无法通过子域网站获利。

编辑要明确我希望将 hostgator 的域名 mysite.com 与我的 heroku 应用程序一起使用。因此,当我键入 mysite.com 时,我的 heroku 应用程序就会出现。我希望我的 heroku 应用从此开始

 mysite.herokuapp.com

到这里

mysite.com

我不希望它成为子域

【问题讨论】:

【参考方案1】:

我将在这里概述两种方法。如果您仍然拥有 cpanel,则可以使用一种方法,因为您要为 HostGator 的托管付费。 (如果您使用 Heroku 进行托管,这是没有意义的,所以这不是一个长期的解决方案。)如果您只有一个在 HostGator 注册的域,并且理论上在任何一种情况下都可以,其他方法都有效。

不管怎样,这样做:

heroku domains:add www.mysite.com

heroku domains:wait 'www.mysite.com'

1) 如果您使用 HostGator 进行托管

在 mysite.com/cpanel 登录您的 HostGator cpanel 界面。向下滚动到域并打开高级区域编辑器(单击链接)。您不会添加记录。相反,你要改变一个已经存在的。查找名称为“www.mysite.com”的记录。 (末尾有句点)类型为 CNAME。单击编辑。将 CNAME 字段更改为当您键入 heroku domains 或向下滚动到 Heroku 仪表板中设置下的域和证书时,heroku 为您提供的 DNS 目标。我的看起来像www.mysite.com.herokudns.com。完成更改。

访问 www.mysite.com。 在网址中输入 www。 www 必须在网址中。现在应该指向您的 Heroku 站点。也许您会看到 400(错误请求)错误。这可能是因为您的后端不允许 Heroku 作为主机。例如,如果您有一个 Django 应用程序,它未处于调试模式(出于安全原因,您应该将 DEBUG 设置为 False),您还必须在 settings.py 中设置 ALLOWED_HOSTS 列表以包含“www.mysite.com”。否则,当您尝试从 www.mysite.com 域访问该站点时,您将收到 400 错误。

最终结果是 www.mysite.com 指向您想要的位置,www.mysite.com/some_page 也是如此。

但是如果用户只输入“mysite.com”怎么办?他们将被定向到您的 HostGator 站点。一个简单的解决方案是转到 CPanel 的 Redirects 部分,也在 Domains 下,并从您的域进行永久重定向(以“/”开头的文本框留空)到 http://(((www.mysite.com/))) [*** 不会让我把它放进去没有括号之类的东西。] 所有这一切都是强制“www”出现在 URL 中,即使用户没有键入它。 现在,无论用户输入什么,他们最终都会出现在您的 Heroku 站点上。我不介意在 URL 框中挂出“www”,所以这对我有用。

2) 如果您没有使用 HostGator 进行托管,只是放弃了它,或者只是不喜欢该公司(很好理解)

如果您没有 HostGator 托管或放弃它,您可能无法访问 cpanel 的内容。首先,添加域,如顶部所示。现在为 Heroku 安装 PointDNS 插件。它会自动与您的自定义域同步(即使在您安装之后)。因此,当您在 Heroku 仪表板中打开 PointDNS 时,您会看到它设置了基本上您需要的一切。在 HostGator 中,https://portal.hostgator.com/domain/manage),单击您的域名并找到更改名称服务器的链接。选择Manually set my nameservers,并将默认名称服务器替换为您在PointDNS 附加页面主页上看到的标有NS 的名称服务器。 (您也可以在 PointDNS 中随意添加或更改它们。)

HostGator 表示需要几天时间才能传播。我看到更改在几秒钟内生效。

如果现在没有www. 就无法工作(检查索引页以外的页面),我已经概述了一个潜在的解决方案here。

使用此 PointDNS 解决方案,您可能希望在世界不同的地方测试您的网站,以确保它在那里可用。我确保在我希望人们看到它的地方可以使用我的,但它在北京也可以使用,所以我认为使用 PointDNS 不会有地理限制。我喜欢使用 www.webpagetest.org 从不同位置测试网站。

【讨论】:

【参考方案2】:

根据https://devcenter.heroku.com/articles/custom-domains,您必须首先在 Hostgator 添加一条 CNAME 记录,例如“CNAME www example.herokuapp.com”。之后,您必须将 www.example.com(带或不带 www)作为自定义域添加到您的项目中。真的很简单。

【讨论】:

感谢@andreé 的回复 感谢@André 的回复我去了我的网站高级 dns 区域编辑器并编辑了记录 Cname。所以左侧是 www.mysite.com 右侧是 mysite.com 我单击并编辑右侧并将其从 mysite.com 更改为 mysite.herokuapp.com 没有任何改变,但这是正确的方法吗

以上是关于如何将我的域名从 hostgator 指向 heroku的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的 DNS 指向 AWS ElasticBeanstalk 实例?

虚幻引擎4如何将我的游戏发布到网站?

我可以在不使用 Route 53 的情况下将我的域和子域指向 AWS 托管吗?

阻止人们从我的域名中获取我的 ip。? [关闭]

Microsoft Azure - 基本问题

在 Atlassian Bamboo 中,我如何将我的脚本指向 Stash Repo 中的文件?