2014-01-14 63 views
1

我有一個用PHP編寫的應用程序,現在新的應用程序是用Rails編寫的。他們忘記了書籤和瀏覽器緩存頁面,所以我們仍然在/index.php上獲得很多點擊量重定向中斷到根的鏈接

我該如何將它指向我的rails應用程序的根目錄?

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

在此先感謝

+0

您可以在路線中使用匹配 'match「/index.php」,:to =>「somecontroller#action」,:via =>「get」 – jbmyid

回答

1

您需要捕獲異常,並重定向如果錯誤代碼是404

有關詳細信息,請參閱此導視廣播: http://railscasts.com/episodes/53-handling-exceptions-revised?view=asciicast

基本信息如下。

config/application.rb路由例外添加到您的應用程序:

config.exceptions_app = self.routes 

創建errors_controller,然後在routes.rb映射文件的錯誤,而它的表演動作:

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 

然後使用您的展示模板爲那些不是404錯誤的應用程序渲染一些明智的錯誤。

1

把這個在您的config/routes.rb所有其他路線後:

matches '*any_path' => redirect('/') 

這將匹配任何給定的URL,並將其重定向到'/'。但只要此聲明在routes.rb中最後一次,它將不會用於文件中較高的路線。