Heroku/GoDaddy:将裸域发送给www

And*_*ham 142 redirect cname heroku 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域它是我的应用程序.

Rya*_*gle 231

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

GoDaddy中的域转发

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

但是,请注意,如果您在Cedar堆栈上,则不要使用CNAME proxy.heroku.com的主机www.而是使用your-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.

  • 如果您使用SSL作为heroku声明,这会产生警告/错误吗?他们说,如果重定向https:// example.com,则会出现警告. (13认同)
  • @Matt没有办法用GoDaddy做到这一点.如果需要,请使用DNSimple或DNS Made Easy等其他提供商的ALIAS/ANAME功能. (5认同)
  • @ jackerman09我只是厌倦了麻烦并转而使用DNSimple (3认同)
  • @RyanDaigle谢谢Ryan.我建议大家离开教父[不止一个原因](http://www.authormedia.com/6-reasons-authors-should-avoid-godaddy/).[NameCheap.com](http://NameCheap.com)是我现在使用的人.他们很棒,他们支持我想做的事情.此外,NameCheap接受[比特币](https://www.namecheap.com/support/payment-options/bitcoin.aspx). (3认同)
  • @jaqx,这发生在我身上,您找到避免用户收到此警告的方法了吗? (2认同)

TMi*_*gan 22

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

  • 为什么要向别人支付另外费用? (5认同)
  • 先生,你是救星.@Vezu:非ssl转发是完全免费的.您只需将裸域的A记录指向该IP地址,它就会将浏览器重定向到www域.你甚至不需要他们的帐户. (4认同)

kob*_*ltz 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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

经常问的问题

我可以将*.mydomain.com指向我的Heroku应用程序吗?

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

我应该使用哪些IP地址将我的自定义域指向Heroku?

Heroku路由堆栈使用可随时更改的IP地址集合,并且不支持使用A记录指向您的应用程序.要确保您的域始终正确指向路由网格,请使用CNAME记录配置子域(例如www.example.org中的www):

If the app is on…   Then CNAME the subdomain to
Bamboo  yourapp.heroku.com
Cedar   yourapp.herokuapp.com
Run Code Online (Sandbox Code Playgroud)

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

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

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

 ! mydomain.com is owned by another user
Run Code Online (Sandbox Code Playgroud)

给定基域的所有应用程序必须由同一个Heroku帐户拥有.上述错误表示其他人已将mydomain.com自定义域添加到其中一个应用中.


Joh*_*non 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'
Run Code Online (Sandbox Code Playgroud)

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