我正在试图弄清楚如何让我的网站的裸域重定向到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域,这是我的应用程序。
答案 0 :(得分:228)
在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。
答案 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
常见问题
我可以将* .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。 这是怎么回事。
在客户经理中,选择我的域名
选择您要管理的域名
在绿色框中,选择更改域名分数
选择高级DNS ,然后选择继续
首先,选择编辑A记录
编辑A记录对于“@ none”输入以下IP地址205.178.189.129,清除“www”和“*(所有其他人)”的记录, 然后选择继续
- 醇>
其次,选择编辑CNAME记录
编辑主机别名(CNAME记录)在Alias列中输入“www”
将TTL设置为7200,但在同一行,输入其他主机部分中博客服务提供的名称服务器 [IE 现在关注HEROKU说明www - > yourapp.herokuapp.com(Cedar Stack)]
选择继续
现在等待并使用以下终端命令检查域:
host domain.com
host www.domain.com