2010-05-28 124 views
3

我有一个简单的Rails应用程序作为正在经历过渡到新服务器的网站的初始页面运行。由于这是一个建立的网站,我看到用户请求打到Rails应用程序中不存在的页面。将所有页面查询重定向到Rails中的主页

如何将所有未知请求重定向到主页而不是抛出路由错误?

回答

5

我刚刚使用过的路线通配符来实现这一目标:

map.connect "/*other", :controller => "pages", :action => "index" 

请注意,这条路应该是在routes.rb中结束,让所有其他路由才匹配。

+0

快速,完美,优雅地解决了我的问题。谢谢你的帮助! – 2010-05-28 17:05:13

0

您可以使用以下方法处理常见错误。将此代码放置在您的应用程序中ApplicationController

 
    def rescue_404 
    @message = "Page not Found" 
    render :template => "shared/error", :layout => "standard", :status => "404" 
    end 

    def rescue_action_in_public(exception) 
    case exception 
     when CustomNotFoundError, ::ActionController::UnknownAction then 
     #render_with_layout "shared/error404", 404, "standard" 
     render :template => "shared/error404", :layout => "standard", :status => "404" 
     else 
     @message = exception 
     render :template => "shared/error", :layout => "standard", :status => "500" 
    end 
    end 

修改它以满足您的需求,您也可以重定向。

HTH

+0

如果只有几个人去的地方,这可能会更有用,但不幸的是,我无法预测人们来自的所有链接。尽管感谢您的帮助。您可能会发现这里发布的基于路线的解决方案也很有趣! – 2010-05-28 17:19:26

相关问题