Redirect Heroku/GoDaddy:将裸域发送到www

Redirect Heroku/GoDaddy:将裸域发送到www,redirect,heroku,cname,a-records,Redirect,Heroku,Cname,A Records,我试图找出如何让我的网站重定向到www域的裸域。我正在使用Heroku并拥有GoDaddy提供的域名。由于Heroku,我的A记录已设置为: @:75.101.145.87 @:75.101.163.44 @:174.129.25.170 我的www.CNAME指向proxy.heroku.com 我一直在互联网上寻找,但找不到一个简单的,免费的答案,我如何可以这样重定向。一些答案讨论使用付费服务,这是我不想做的,而另一些则讨论进入并修改Heroku设置,但没有给出太多解释。现在,如果你去我的裸

我试图找出如何让我的网站重定向到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域名,那就是我的应用程序。

在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路由堆栈使用可以 随时更改,并且不允许使用记录指向您的应用程序 支持。确保您的域始终正确指向 路由网格,使用配置子域(例如www.example.org中的www CNAME记录:

应避免使用裸域(或裸域/顶点域)(例如example.org) 因为它们的可用性和正常运行时间的影响

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

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

给定基本域的所有应用程序必须由同一个域所有 Heroku账户。上述错误意味着其他人已经 将mydomain.com自定义域添加到他们的一个应用程序中


如果您在裸域上设置了IP地址,并将您的www.cname'd连接到了yourappname.herokuapp.com,那么您所需要做的就是在应用程序中使用类似的方法,在请求到达应用程序时重定向请求

您要设置的是,对裸域的任何请求都会被重定向到您的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,但仅当它正在生产中运行时才重定向到www.yurdomain.com。

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

如果您这样做,那么到yourdomain.com的所有流量都将路由到Heroku应用程序CNAME(这是最新版本)

但是,需要注意的是,如果您在主机上,则不要使用
proxy.heroku.com
作为
www
CNAME的主机。改用
你的app name.herokuapp.com
。这些细节是很重要的


GoDaddy还指出,为了让您的域名转发,其A记录必须指向64.202.189.170,或者必须介于以下范围之间:50.63.202.1-50.63.202.31或184.168.221.1-184.168.221.31。

要使用网络解决方案,请执行以下操作:

网络解决方案将yourdomain.com指向www.yourdomain.com。 这是怎么做的

  • 在帐户管理器中,选择我的域名

  • 选择要管理的域名

  • 在绿色框中,选择更改域点的位置

  • 选择高级DNS,然后继续

  • 首先,通过选择“编辑A记录”来编辑A记录

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

  • 其次,通过选择edit CNAME records编辑主机别名(CNAME记录)

    在别名列中输入“www”

    将TTL设置为7200,但在同一行中,在“其他主机”部分输入博客服务提供的名称服务器 [IE 立即按照HEROKU的说明操作www-->yourapp.herokuapp.com(Cedar Stack)

    选择“继续”

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

    host domain.com
    host www.domain.com
    

    您还可以使用从裸域转发到DNS管理器中的www.In GoDaddy,在174.129.25.170中的@heading type中的A记录下。他们将自动从裸域重定向到前面有www.的域。

    Heroku常见问题解答仅说明如何使用DNSimple进行重定向。他们的支持页面链接到StackOverflow。我认为Emil在这方面的回应有点苛刻,这个网站是解决我们在编程过程中遇到的问题的资源,这是我现在遇到的问题!:d这可能应该以Dupe而不是离题的形式结束:@ChrisMoschini您引用的问题的公认答案在GoDaddy上不起作用,因为GoDaddy不支持别名记录,只支持CNAME。我认为这是它自己的问题。无论设置了什么记录,都不可能有一个直接指向heroku的裸域。我们只能将它设置为路由到
    www
    哪个CNAME指向
    你的app name.herokuapp.com
    。Heroku的IP地址和网址是appname.Heroku.com还是proxy.Heroku.com?你应该仔细看看这篇文章,因为它涵盖了你正在查找的所有内容
     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'
    
    host domain.com
    host www.domain.com