重定向断开链接到Root

时间:2014-01-14 06:51:07

标签: ruby-on-rails ruby apache passenger

我有一个用PHP编写的应用程序,现在新的应用程序是用Rails编写的。他们忘了处理书签和浏览器缓存的页面,所以我们仍然在/index.php上获得了大量的点击

我如何将其指向我的rails应用程序的根目录?

www.mydomain.com/index.php => www.mydomain.com

提前致谢

2 个答案:

答案 0 :(得分:1)

如果错误代码为404,您需要捕获异常并重定向。

有关详细信息,请参阅此railscast: http://railscasts.com/episodes/53-handling-exceptions-revised?view=asciicast

基础知识如下。

将此添加到您的config/application.rb以将异常路由到您的应用程序:

config.exceptions_app = self.routes

创建errors_controller,然后将错误映射到routes.rb文件中的show动作:

match ':status', to: 'errors#show', constraints: {status: /\d{3}/ }

errors_controller.rb

class ErrorsController < ApplicationController
  def show
    if request.path == '/404'
      redirect_to root_path
    else
      render text: request.path
    end
  end
end

然后使用show模板为那些不是404错误的模板渲染一些明显的错误。

答案 1 :(得分:1)

将此信息放在config/routes.rb

中的所有其他路线之后
matches '*any_path' => redirect('/')

这将匹配任何给定的网址并将其重定向到'/'。但只要这个陈述在routes.rb中是最后一个,它就不会用于文件中较高的路径。