2011-12-05 97 views
0

我犯了錯誤,並允許兩個不同的路線指向同一個地方。現在我遇到了重複內容的麻煩。搜索引擎優化修復重定向在Ruby On Rails

新聞可以通過兩種方式查看: http://website.com/posts/321http://website.com/news/this-is-title/321

我想解決這個爛攤子,我的想法是通過什麼聯繫用戶來檢查。例如,如果有人將通過http://website.com/posts/321來到我想訪問者重定向到正確的路由:http://website.com/news/this-is-title/321

我的第一個想法是在郵政控制器驗證請求的URL,然後在if語句決定有關重定向或簡單地顯示正確的看法。這是好的概念嗎?

回答

1

我認爲這不是最合適的。

您應該使用redirect methods在路線級別執行此操作。

+0

下此選項可用RoR的3版本? – Arti

+0

恐怕不是:http://guides.rubyonrails.org/v2.3.8/routing.html – apneadiving

+0

唉!所以我會試試這個:https://github.com/larspind/redirect_routing非常感謝你的幫助。那就是我正在尋找的東西。 「Rails方式」解決方案 – Arti

0

在你posts_controller.rb顯示:

def show 
    return redirect_to post_path(params[:id]) if request.fullpath.match /(your regex)/i, :status => 301, :notice => 'This page has been permanently moved' 

    @post = Post.find(...) 
end 
  1. 回報redirect_to的是很重要的,因爲你可以't調用重定向或多次渲染
  2. 匹配請求的正則表達式。完整路徑
  3. 如果您超級關心搜索引擎優化,設置狀態,以301這告訴搜索引擎的網頁已被永久移動
  4. 通知是可選的,只對重定向後asthetics的情況下,用戶書籤的舊頁面URL