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