Heroku/GoDaddy:将裸域发送到 www [关闭]
Posted
技术标签:
【中文标题】Heroku/GoDaddy:将裸域发送到 www [关闭]【英文标题】:Heroku/GoDaddy: send naked domain to www [closed] 【发布时间】:2012-07-14 14:34:39 【问题描述】:我想弄清楚如何让我的网站的裸域重定向到 www 域。我正在使用 Heroku 并拥有来自 GoDaddy 的域。因为 Heroku,我的 A 记录已经设置为:
@:75.101.145.87
@:75.101.163.44
@:174.129.25.170
我的 www CNAME 指向 proxy.heroku.com。
我一直在寻找整个互联网,但找不到一个简单、免费的答案来说明如何进行此重定向。一些答案讨论使用付费服务,我不想这样做,而另一些答案则讨论进入和修改 Heroku 设置,但实际上并没有给出太多解释。现在,如果你去我的裸域,只是 Heroku 说不存在这样的应用程序,而如果你去我的 www 域它是我的应用程序。
【问题讨论】:
Heroku 常见问题解答仅说明如何使用 DNSimple 进行重定向。他们的支持页面链接到 ***。 我认为 Emil 对此的回应有点苛刻,这个网站是解决我们在编程过程中遇到的问题的资源,这是我现在遇到的问题! :D 这应该作为 Dupe 而不是 Off-Topic 关闭:***.com/questions/16022324/… @ChrisMoschini 在您引用的问题中接受的答案不适用于 GoDaddy,因为 GoDaddy 不支持 ALIAS 记录,仅支持 CNAME。我认为这是它自己的问题。 无论设置什么 A 记录,都不可能有一个裸域直接指向 heroku。我们只能将其设置为路由到www
,其中 CNAME 指向 your-app-name.herokuapp.com
。
【参考方案1】:
在 GoDaddy 上,使用“转发”功能设置从 yourdomain.com
到 www.yourdomain.com
的转发。可以在“域信息”部分底部的域管理器中访问转发功能:
如果您这样做,那么到 yourdomain.com 的所有流量都将被路由到 Heroku 应用 CNAME(即 better approach)。
但是,请注意,如果您使用的是 Cedar stack,则不要使用 proxy.heroku.com
作为您的 www
CNAME 的主机。而是使用your-app-name.herokuapp.com
。这些详细信息是covered here。
GoDaddy 还 specifies 表示,为了让您的域名转发,其 A 记录必须指向 64.202.189.170 或必须位于以下范围之间:50.63.202.1 - 50.63.202.31 或 184.168.221.1 - 184.168。 221.31.
【讨论】:
如果您使用 SSL 作为 heroku 声明,这会产生警告/错误吗?他们说如果 https://example.com 被重定向,则会出现警告。 @jaqx,这发生在我身上,你有没有办法避免用户收到这个警告? @jackerman09 我只是厌倦了麻烦并切换到 DNSimple @Matt GoDaddy 无法做到这一点。如果需要,请使用 DNSimple 或 DNS Made Easy 等其他提供商的 ALIAS/ANAME 功能。 @RyanDaigle 谢谢瑞恩。我建议大家离开godaddy more than one reason。 NameCheap.com 是我现在使用的人。他们很棒,他们支持我想做的事情。此外,NameCheap 接受bitcoin。【参考方案2】:您还可以使用http://wwwizer.com 从您的裸域转发到您的 www。在 GoDaddy 的 DNS 管理器中的 A 记录下,@标题类型为 174.129.25.170。他们会自动从裸域重定向到带有 www 的域。在它面前。
【讨论】:
为什么要另外付费给别人? 先生,您是救生员。 @Vezu:非 ssl 转发是完全免费的。您只需将裸域的 A 记录指向该 IP 地址,它就会将浏览器重定向到 www 域。您甚至不需要他们的帐户。 我正在尝试为我的 wwwizer 合并,并且在我的 A 记录中,根据 wwwizer 的说明,我的主机为“@”,指向为 174.129.25.170,但我收到了他们的错误消息当我访问我的裸域时页面!我做对了吗??【参考方案3】:在 GoDaddy 的 DNS 区域编辑器中,您需要将 CNAME 记录 www 配置为指向 @。在您的 A 记录中,您将使用通配符 (*) 指向 IP 地址,使用 @ 作为主机的第二个 A 记录也将指向 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.com 指向我的 Heroku 应用吗?
是的,使用 Heroku 的免费自定义域功能,您可以将通配符域指向您的应用程序。
我应该使用哪些 IP 地址将我的自定义域指向 Heroku?
Heroku 路由堆栈使用一组 IP 地址,这些 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.com?
在某些情况下,尝试添加自定义域(例如 subdomain.mydomain.com) 的应用程序可能会导致如下错误:
! mydomain.com is owned by another user
给定基域的所有应用程序必须由同一人拥有 Heroku 帐户。上面的错误表示别人已经 将 mydomain.com 自定义域添加到他们的其中一个应用程序中。
【讨论】:
Heroku 的 IP 地址和网址是 appname.heroku.com 还是 proxy.heroku.com? 你真的应该看看这篇文章,devcenter.heroku.com/articles/custom-domains,因为它涵盖了你想做的所有事情。 这种方法将 CNAMEwww
指向@,它仍然将流量路由到固定 IP 地址(与 A 记录具有所有相同的缺点)。使用***重定向,在 GoDaddy 上这称为“转发”。【参考方案4】:
如果您在裸域上设置了 IP 地址,并且您的 www cname'd 到 yourappname.herokuapp.com,那么您需要做的就是在您的应用程序中使用类似 RackRewrite 的东西来重定向请求到达您的申请。
您要设置的是对裸域的任何请求都会重定向到您的 www 地址。按照安装说明在 config/initializers 中添加一个初始化程序
ApplicationName::Application.config.middleware.insert_before(Rack::Lock, Rack
r301 %r.*, 'http://www.yourdomain.com$&', :if => Proc.new |rack_env
rack_env['SERVER_NAME'] != 'www.yourdomain.com'
end if Rails.env == 'production'
也就是说,如果请求的 URL 不是 www.yourdomain.com,则 301 将其重定向到 www.yuordomain.com,但前提是它在生产中运行。
【讨论】:
理想情况下,这是在 DNS 级别完成的,避免通过 Heroku 的固定 IP 地址。另外,不确定这是否是 Ruby 应用程序? Ryan,无法在 DNS 级别进行重定向。它们始终由 HTTP 完成。 为什么作为初始化器,为什么不直接放在生产环境配置中? 当我使用heroku + 我的客户域时,我必须有任何指向heroku 的A 记录吗?如果是,它的价值是什么?【参考方案5】:要与 Network Solutions 一起使用,请执行以下操作:
将 yourdomain.com 指向 www.yourdomain.com 的网络解决方案。 方法如下。
在客户经理中,选择我的域名
选择您要管理的域名
在绿色框中,选择 Change Where Domain Points
选择高级 DNS,然后继续
首先,通过选择编辑A记录
来编辑A记录对于“@none”输入以下IP地址205.178.189.129,清除“www”和“*(所有其他)”的记录, 然后选择继续
其次,通过选择编辑 CNAME 记录来编辑主机别名(CNAME 记录)
在别名栏中输入“www”
将 TTL 设置为 7200,但在同一行,在“其他主机”部分输入博客服务提供的名称服务器 [ IE 立即遵循 HEROKU 说明 www --> yourapp.herokuapp.com (Cedar Stack) ]
选择继续
现在等待并使用以下终端命令检查域:
host domain.com
host www.domain.com
【讨论】:
以上是关于Heroku/GoDaddy:将裸域发送到 www [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 S3 静态网站托管重定向到无法在 chrome 中工作的 WWW
如何使用 Route 53 将裸(顶点)域重定向到 www?