2010-04-20 64 views
0

我曾經有PHP的網站,並使用URL重寫上圖有SEO友好的URL, 關於PHP我喜歡 /image/blablablabla-1234-blablabla 鏈接重寫:通過使用Apache的.htaccess文件的URL重寫規則 /image/1234.jpg如何重寫圖片/ <text> - <imageID> - <text>圖片/ ID.jpg?

所以我想結構/image/<text>-ID-<text>返回/image/<id>.jpg reguardless的文字內容。

現在我完全切換到軌道上的紅寶石,我想知道什麼是在RoR上做到這一點的最佳方式?我在搭乘乘客的Apache上託管網站。

我想解決方案是在rails路徑文件中,但我找不出適當的方法來實現這一點。

在此先感謝。

回答

0
  1. 如果您需要穿過鐵軌控制器(用於身份驗證等),您可以:

A.嘗試friendly_id插件。你有這個功能的開箱即用。

friendly_id guide

B.在控制器中添加一個的before_filter(分析任何類型的URL的那種形式)

before_filter :rewrite_id 

def rewrite_id 
    if params[:id] && params[:id] =~ /[a-zA-Z0-9]*-([0-9]*)-[a-zA-Z0-9]*/ 
    params[:id] = $1.to_i 
    end 
end 
  • 如果這僅僅是靜態數據,最好是由前端apache直接服務器,所以你應該使用與php相同的技術。
  • +0

    感謝您的回答。我對已固定評論的文章使用已經友好的ID。 在我的情況下,我希望有一個重寫規則可以處理任何文本'blablabla'。 – SilverRuby 2010-04-20 11:52:32

    +0

    更新了我的答案。 – 2010-04-20 12:46:56

    +0

    非常感謝。 我認爲B解決方案是最好的方式,因爲每個網站可能有不同的規則。我會試一試 – SilverRuby 2010-04-20 13:17:08