网站范围重定向

时间:2009-10-12 16:39:17

标签: ruby-on-rails

我在大约3周前创建了一个新的网站,由Heroku托管,此后我决定改变其域名。我试图弄清楚如何进行网站范围的重定向,我正在考虑使用类似我的应用程序控制器(在过滤器之前添加):

def new_domain
  redirect_to url_for(:controller => params[:controller], :action => params[:action], :id => params[:id], :host => 'http://newdomain.com'), :status => 301
end

这显然不适用于所有操作,如果url传递其他参数,则会失败。我想知道是否有一些更普遍的东西我可以这样做,所以我不必拥有一堆if else子句?

2 个答案:

答案 0 :(得分:1)

试试这个。

params[:host] = 'http://newdomain.com'
redirect_to url_for(params), :status => 301

'url_for'取一个哈希并通过更改参数中的“主机”,它应该与其余的参数一起转到新主机。

答案 1 :(得分:1)

由于最近版本的Rails现在遵循Rack界面并且可以合并Rack middleware,因此可能值得一看Canonical Host。我自己没有使用它,但乍一看它听起来可能是一个很好的解决方案。