2011-10-20 34 views
1

我正在將一箇舊的php網站重新制作成RubyOnRails(3.0.3)。現有的網站(用php編寫)已經上網了好幾年了,並且獲得了很多鏈接,並且在Google中佔有很好的位置。301將舊的php路徑重定向到新的Rails

現在,因爲我在同一個域中的Rails中釋放它,所以我希望將舊文件301重定向到新版本中的相應文件。什麼是最好的方法?

這些情況:

  • 我建立在哪裏,我更換PHP版本
  • 同一域中的新網站中有怎樣的文件已被改名爲沒有邏輯。例如,www.domain.com/cat/home/page/helloworld.php可能在www.domain.com/stuff/hello-world-in-rails上有相應的地方,有些文件已被刪除等。
  • 因此,我想在表格或類似的地方指定,其中一列是舊路徑,另一列是新路徑。當有人試圖訪問www.domain.com/cat/home/page/helloworld.php時,他們將301:d到www.domain.com/stuff/hello-world-in-rails

當我已經使WordPress網站進入WordPress我已經解決了這個問題,在每個php文件中添加一個重定向代碼,指向新的路徑(在WordPress中)。由於我的Rails安裝不支持php文件,但這是不可能的。

我認爲mod_rewrite是我選擇的武器,但我應該怎麼做呢?

+0

可能重複的[重新路由舊的內容(html的/ .PHP等),以Ruby on Rails的](http://stackoverflow.com/questions/2063892/reroute-old-content-html- php-etc-to-ruby-on-rails) –

回答

3

您可以管理路由文件中的所有重定向。這裏是路線的文檔,特別是重定向方法將會爲你加以介紹!的

http://guides.rubyonrails.org/routing.html#redirection

+0

是的,這個工作正常。我沒有意識到這很簡單!但他們301被重定向? – Christoffer

+0

我認爲你可以給HTTP代碼作爲參數的方法。檢查文檔,我認爲有一個選項叫做:狀態,讓你可以改變HTTP狀態。 – davidb

2

我建議使用Rack來處理這個任務,應該很快,並從您的Rails應用程序中卸載。

有一個叫「redirect

機架一個rubygem它可以讓你使用一個簡單的數組來檢測和重定向某些URL。例如

redirect ['/catch_url', '/redirect_url'], 
      ['/catch_url2', '/redirect_url2'] 

注:回購已經有一段時間沒有更新了,所以不知道它是否仍然在工作,即使是沒有,有沒有太多的代碼,你很可能會推出自己的調整版本如果需要,它很容易。

相關問題