我试图将我的hostgator域名指向我的heroku应用,但是当我尝试管理我的域名时,我一直收到错误。
An error occurred. Please verify the validity of your nameservers and try again.
我已经在网站信息中心中将域名添加到heroku>设置。我的应用程序是免费的,我已准备好向上移动并支付完整版本。我已经找出了一些东西,我准备好部署了。要做到这一点,我必须将我的域名指向heroku。我知道我错过了什么。我已经阅读了很多文档,但它并不是很清楚。我知道这很简单,我很遗憾。提前致谢
EDIT。我不希望我的域名成为子域名。我希望它成为主要领域。因为您无法通过子网站获利。
编辑要清楚我希望来自hostgator的域名mysite.com与我的heroku应用程序一起使用。因此,当我输入mysite.com时,我的heroku应用程序出现了。我希望我的heroku应用程序能够从这个
开始 mysite.herokuapp.com
到这个
mysite.com
我不希望它成为子域名
答案 0 :(得分:4)
我将在这里概述两种方法。如果您仍然拥有cpanel,则可以使用,因为您需要使用HostGator进行托管。 (如果你使用Heroku进行托管,这没有任何意义,所以这不是一个长期的解决方案。)如果你只是在HostGator注册了一个域,理论上也是如此。
无论哪种方式,都要这样做:
heroku domains:add www.mysite.com
heroku domains:wait 'www.mysite.com'
登录mysite.com/cpanel上的HostGator cpanel界面。向下滚动到域并打开高级区域编辑器(单击链接)。你不打算添加记录。相反,你将改变已经存在的那个。找到名为“www.mysite.com”的记录。 (它有一个句号结尾),类型为CNAME。单击编辑。将CNAME字段更改为heroku在您键入heroku domains
时向您提供的DNS目标,或向下滚动到Heroku仪表板中“设置”下的“域和证书”。我看起来像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的重定向部分,也在域下,并从您的域进行永久重定向(将以“/”开头的文本框留空)到http://(((www.mysite.com/))) [StackOverflow不会让我放它没有像括号那样的东西。]所有这一切都是强制“www”出现在URL中,即使用户没有输入它。 现在,无论用户输入什么内容,它们最终都会出现在您的Heroku网站上。我不介意在URL框中挂出“www”,所以这对我有用。
如果您没有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从不同的位置测试网站。
答案 1 :(得分:1)
根据https://devcenter.heroku.com/articles/custom-domains,您必须添加CNAME记录,例如" CNAME www example.herokuapp.com"首先在Hostgator。之后,您必须将www.example.com(带或不带www)添加为项目的自定义域。这很简单。