heroku dns多个子域

时间:2012-06-09 02:15:16

标签: heroku dns

我使用我的DNS提供商重定向example.com -> www.example.com

我已设置hello.example.com to myapp.herokuapp.com(CNAME)

并将hello.example.com添加到heroku app上的域列表中。

现在,我想做的是,重定向

www.example.com -> hello.example.com

我是使用CNAME完成的。但是,这不起作用除非我将www.example.com添加到heroku应用程序上的域列表中。但我想要的行为是,www只是重定向到你好,并且应用程序从hello服务---甚至不需要涉及www。这听起来像DNS问题 - 想法?

1 个答案:

答案 0 :(得分:0)

尽管某些DNS提供商已添加了可能出现的功能,但DNS并未执行重定向。您需要使用诸如rack-redirect之类的东西在您的应用程序中进行某种重定向(如果您正在编写Ruby应用程序)。如果您没有使用Heroku,那么您的网络服务器通常会这样做。

您基本上要做的是检查所请求的域名,如果它不是您的主要域名(即hello.example.com),那么您将其重定向到hello.example.com

MyApp::Application.config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do 
 r301 %r{.*}, 'http://hello.example.com$&', :if => Proc.new {|rack_env| 
  rack_env['SERVER_NAME'] != 'hello.example.com' 
 } 
end if Rails.env == 'production'