Heroku/GoDaddy: 发送裸域到 www

我试图找出如何得到我的网站裸域重定向到 www 域。我使用 Heroku 并从 GoDaddy 获得域名。由于 Heroku 的原因,我的 A 级记录已经设置为:

@ : 75.101.145.87

@ : 75.101.163.44

@ : 174.129.25.170

我的 CNAME 指向 proxy.heroku.com。

我一直在网上寻找,但找不到一个简单的,免费的答案,我如何可以做这个重定向。一些回答讨论使用付费服务,我不想这样做,其他人谈到进入和修改 Heroku 设置,但然后没有真正给出太多的解释。现在,如果你进入我的裸域,只是 Heroku 说没有这样的应用程序存在,而如果你进入我的 www 域,那就是我的应用程序。

92739 次浏览

在 GoDaddy 的 DNS 区域编辑器中,您需要将 CNAME 记录 www 配置为指向@。在您的 A Record 中,您将使用一个通配符(*)来指向 IP 地址,另一个 A Record 使用@作为主机,它也将指向 Web 地址。这边,

subdomain1.example.com will forward to your IP
www.example.com will forward to your IP
silly.example.com will forward to your IP
anything.example.com will forward to your IP

常见问题

我能把 *.mydomain.example指向我的 Heroku 应用程序吗?

是的,使用 Heroku 的免费自定义域特性,您可以将通配符域指向您的应用程序。

我应该使用什么 IP 地址,以指向我的自定义域 Heroku?

Heroku 路由堆栈使用的 IP 地址集合可以 使用 A 记录来指向你的应用程序是不可能的 以确保您的域始终正确指向 路由网格,配置子域(例如在 www.example.org中的 www)使用 CNAME 记录:

If the app is on…   Then CNAME the subdomain to
Bamboo  yourapp.heroku.com
Cedar   yourapp.herokuapp.com

应避免裸露(或裸露/顶端)的区域(例如 example.org) 因为它们的可用性和正常运行时间的后果。

为什么我不能为我的应用程序添加 subdomain.mydomain.example

在某些情况下,尝试添加自定义域(如 subdomain.mydomain.example)对于应用程序可能会导致如下错误:

 ! mydomain.example is owned by another user

给定基域的所有应用程序都必须由同一个 Heroku 帐户。上述错误意味着其他人已经 在他们的一个应用程序中增加了一个 mydomain.example自定义域。

如果你在你的裸域名上设置了 IP 地址,并且你的 www cname 被 yourappname.herokuapp.com 了,那么你所需要做的就是在你的应用程序中使用类似于 RackRewrite的东西来重定向到达你的应用程序的请求。

您想要设置的是对裸域的任何请求都会被重定向到您的 www 地址。在遵循安装说明之后,在 config/initializer 中添加一个初始化器

 ApplicationName::Application.config.middleware.insert_before(Rack::Lock, Rack
r301 %r{.*}, 'http://www.yourdomain.example$&', :if => Proc.new {|rack_env
rack_env['SERVER_NAME'] != 'www.yourdomain.example'
}
end if Rails.env == 'production'

也就是说,如果请求的 URL 不是 www.yourdomain.example,那么301会将其重定向到 www.yuordomain.example,但只有当它在生产环境中运行时才会这样做。

在 GoDaddy 上,使用“转发”功能设置从 yourdomain.examplewww.yourdomain.example的转发。转发功能可以在“域名信息”部分底部的域名管理器中访问:

Domain forwarding in GoDaddy

如果这样做,那么所有到 yourdomain.example的流量将被路由到 Heroku 应用程序 CNAME (即 更好的方法)。

但是,需要注意的是,如果您在 雪松堆上,那么不要使用 proxy.heroku.com作为 www CNAME 的主机。而是使用 your-app-name.herokuapp.com。这些细节是 盖在这里

GoDaddy 还指出,为了让您的域名转发,其 A 记录必须指向 64.202.189.170或必须落在以下范围之间: 50.63.202.1-50.63.202.31184.168.221.1-184.168.221.31

为了与网络解决方案协同工作,请执行以下操作:

指向 yourdomain.examplewww.yourdomain.example的网络解决方案。 我来告诉你怎么做。

  1. 客户经理中,选择 < em > My Domain Names

  2. 选择要管理的域名

  3. 在绿色框中,选择 < em > Change Where Domain Point

  4. 选择 高级域名解析系统,然后继续

  5. 首先,通过选择 < em > Edit A Records 来编辑 A Records

    * 对于“@none”输入以下 IP 地址205.178.189.129,清除“ www”和(其他) * * , 然后选择“继续”

  6. 其次,通过选择 EditCNAME Records 来编辑主机别名(CNAME 记录)

    在 Alias 列中输入“ www”

    将 TTL 设置为7200,但在同一行中,在 Other Host 部分中输入 blog 服务提供的名称服务器 [ IE ] 现在就按照赫罗库的指示去做 yourapp.herokuapp.com (雪松堆栈)

    选择“继续”

现在等待并使用以下终端命令检查域:

host domain.example
host www.domain.example

您也可以使用 http://wwwizer.com从您的裸域转发到您的 www。在 GoDaddy 的 DNS 管理器中,在174.129.25.170中的@header 类型的 A 记录下。它们将自动从裸域重定向到具有 www 的域。在它前面。