Rails 301重定向

24

我想将多个条目重定向到我的着陆页上的一个URL。

以下URL:http://mysite.comhttp://www.mysite.com,将使用301重定向重定向到http://www.mysite.com/。在Rails中应该如何实现这个功能?


你使用的是哪个Web服务器? - alex
3个回答

30

在Rails中使用301重定向

class RedirectController < ApplicationController
  def index
    redirect_to :root, :status => :moved_permanently
  end
end

22

我没有尝试过这个,但是应该可以这样做:

class ApplicationController < ActionController::Base
  before_filter :correct_domain!

  private
  def correct_domain!
    unless request.host == 'www.mysite.com'
      redirect_to root_url, :status => 301  # or explicitly 'http://www.mysite.com/'
    end
  end
end

但我不确定主机属性中是否包含尾部斜杠...


谢谢Vapire,但是当我将这个添加到我的应用程序控制器时,我收到了一个重定向循环错误。 - Dru
需要在主控制器中完成,对我来说效果很好。 - creativetechnologist
@Dru 只是猜测,也许你的 root_urlrequest.host 不匹配(即不包含 www)。 - Ryan Taylor

3

我使用了这篇文章,决定使用非www的url进行重定向。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接