Heroku / GoDaddy:将裸域发送给www

时间:2012-07-15 14:08:55

标签: 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设置,但后来没有真正给出太多解释。现在,如果你去我的裸域,那就是Heroku说没有这样的应用程序存在,而如果你去我的www域,这是我的应用程序。

5 个答案:

答案 0 :(得分:228)

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

Domain forwarding in GoDaddy

如果您这样做,那么到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。

答案 1 :(得分:22)

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

答案 2 :(得分:7)

在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

enter image description here

常见问题

我可以将* .mydomain.com指向我的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.com?

  

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

 ! mydomain.com is owned by another user
  

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

答案 3 :(得分:5)

如果您在裸域上设置了IP地址并且将www cname设置为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'

这就是说,如果请求的网址不是www.yourdomain.com,那么301会将其重定向到www.yuordomain.com,但前提是它正在生产中运行。

答案 4 :(得分:3)

要使其与Network Solutions配合使用,请执行以下操作:

  

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

     
      
  1. 客户经理中,选择我的域名

  2.   
  3. 选择您要管理的域名

  4.   
  5. 在绿色框中,选择更改域名分数

  6.   
  7. 选择高级DNS ,然后选择继续

  8.   
  9. 首先,选择编辑A记录

    编辑A记录      

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

  10.   
  11. 其次,选择编辑CNAME记录

    编辑主机别名(CNAME记录)      

    在Alias列中输入“www”

         

    将TTL设置为7200,但在同一行,输入其他主机部分中博客服务提供的名称服务器    [IE   现在关注HEROKU说明www - > yourapp.herokuapp.com(Cedar Stack)]

         

    选择继续

  12.   

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

host domain.com
host www.domain.com