46

我已按照https://devcenter.heroku.com/articles/custom-domains上的所有说明设置我的自定义域,但它仍然无法正常工作。

在 Heroku 上,我有以下域:

myapp.herokuapp.com

myapp.com

www.myapp.com

在 Namecheap 上,我有以下设置:

主机名 | IP 地址/网址 | 记录类型

@http: //myapp.com URL 重定向

www myapp.herokuapp.com。CNAME(别名)


当我在终端中运行:“host www.myapp.com”时,我希望得到“www.myapp.com 是 myapp.herokuapp.com 的别名”。相反,我得到:

“www.myapp.com 是 myapp.heroku.com 的别名”

我不知道为什么它指向 myapp.heroku.com,因为我只指定了 myapp.herokuapps.com。

有谁知道为什么会这样?

4

9 回答 9

51

更新说明: Heroku 和 Namecheap 经常更改它们的接口。这个答案可能有过时的截图,但它会随着时间的推移而更新。请参阅下面的这些更新。

我自己刚刚完成了这个,所以我想我会插话,因为答案并没有说明如何让 www.domain.com 和 domain.com 都工作。Heroku 也改变了它的管理界面。

名不虚传


  • 首先,登录到 Namecheap
  • 转到域列表并单击您正在配置的域的“管理”。

名不虚传 -将两种记录类型设置为 CNAME(别名)并<name>.herokuapp.com在两个 url 框(@ 和 www)中输入您的记录。

(PS:如果他们不在那里,请单击“添加新记录”并在那里添加它们。)

在此处输入图像描述

接下来,前往 Heroku


  • 登录并从列表中选择您的项目。对于这个例子,我们选择“Lakka”项目。

在此处输入图像描述

  • 在项目页面上,单击设置

在此处输入图像描述

  • 向下滚动并找到添加域部分

在此处输入图像描述

  • 输入您的domain.com并单击保存。
  • 再次单击该按钮,输入您的www.domain.com并单击“保存”。

在此处输入图像描述

就是这样,你完成了!现在,当您输入domain.comwww.domain.com在浏览器中时,两者都会显示您的 Heroku 项目。

在此示例中,http ://lakka.herokuapp.com 也可以在http://lakkatracker.comhttp://www.lakkatracker.com上访问(在 DNS 更新后) 。

(如果您想将流量从 www.domain.com 重定向到 domain.com,这是一个很好的做法,您可以将记录类型“URL(重定向)”用于 www 主机名)

您的 DNS 可能需要一些时间才能识别这些更改。如果您的更改没有立即反映,您可以尝试使用代理进行测试,例如Anonymouse 。

于 2015-07-21T21:19:57.660 回答
37

1) 转到 Namecheap,然后转到您要管理的域。

2) 在左侧边栏上,单击“所有记录主机”,而不是任何其他爵士乐其他教程告诉你的。无需更改 DNS 指向。使用别名更容易。

namecheap 侧边栏所有主机记录

3) 完成后,您会看到以“www”开头的行作为 CNAME(别名)选项。将此填写为您的 Heroku 应用程序的域名example.herokuapp.com

namecheap CNAME 别名位置

这就是namecheap。

4)然后在heroku设置中,在“域”下,输入您希望显示的购买域名。

heroku 设置域

就是这样!这就像让 heroku 和 namecheap 知道这两个域别名一样简单。

此博客的学分:http: //blog.romansanchez.me/2013/06/08/point-namecheap-domain-to-heroku/

更新:

显然,heroku 只允许带有www.前缀的网站。拥有一个真正的根域www.需要一些额外的忍者黑客攻击。

于 2014-09-19T02:14:01.967 回答
18

Namecheap 更新了界面。新的截图来补充其他好的答案:

第1步

第2步

第 3 步

于 2015-10-07T20:19:04.097 回答
5

如果您希望所有流量都指向http://example.com,请执行以下操作:

在此处输入图像描述

并在 Heroku 设置中设置 example.com 和 www.example.com。

然后使用http://anonymouse.org测试一切

于 2015-08-21T11:29:11.783 回答
3

设置如下所示的 namecheap 配置:

在此处输入图像描述

还有一个看起来像这样的heroku配置:

在此处输入图像描述 你很高兴去!

于 2015-11-04T00:47:07.410 回答
1

根据您的应用程序,这可能是未使用 SSL 证书的结果。如果您尝试在免费测功机上使用 SNI SSL,它将无法正常工作。就我而言,我升级到了爱好测功机,它立即通过 ACM 工作。

于 2020-10-05T18:07:46.723 回答
0

这里有2种可能,

  1. 您之前已将 DNS 记录指向 myapp.heroku.com,但更改尚未传播
  2. 这可能是 Heroku 所做的更改将应用​​程序从 heroku.com 域移动到 herokuapp.com 域的产物,但我不确定这是如何发生的,或者为什么会发生在你身上;我的应用程序的记录都直接指向 herokuapp.com,但我没有使用 NameCheap。

您可以尝试使用 .tk 之类的实体注册不同的(免费)域,以查看这是否特定于 NameCheap。

于 2013-10-16T09:34:39.613 回答
0

我无法同时让 www.myapp.com 和 myapp.com 工作,因此我发现的解决方法之一是将 CNAME 和 @ 设置为 www.,然后在“域”选项卡上,从 myapp 设置“重定向域” .com 到 www.myapp.com。希望有帮助!

于 2017-06-01T19:03:53.773 回答
0

我今天将一个 namecheap 域链接到我的 heroku 应用程序,现在它有点不同,所以这就是我所做的。

  1. 将域(在 namecheap 上购买)添加到您的 heroku 应用程序中,例如 www.yourdomain.com。“www”很重要。复制生成的 xxx.herokudns.com 链接。
  2. 现在转到 namecheap 上的域设置。单击高级 DNS。
  3. 添加以下两条记录:
    • 类型:CNAME 记录,主机:www,值:从步骤 1 复制的 url。
    • 类型:URL 重定向记录,主机:@,值:http://www.yourdomain.com
  4. 保存,也许您必须等待长达 30 分钟。
于 2020-04-10T16:55:28.110 回答