理論的には、必要なルートを多数追加できます。ただし、メモリを消費するため、routesファイルに不要なものを入れないでください。また、コントローラに送信する前に、すべてのリクエストのすべてのルートロジックを処理する必要がある場合があります。
ルートファイルを台無しにするのではなく、リダイレクトを実行するURLが非常に多い場合は、より柔軟なコードを記述できるため、リダイレクトを実行するためだけにコントローラーを作成することをお勧めします。from_url
たぶん、 (古いURL)とnew_url
(リダイレクト用)を保存するテーブルを作成することができます。次に、新しいコントローラー内で、データベースで古いURLを見つけて、リダイレクトを実行します。
class RedirectionController < ApplicationController
def index
redirect = Redirection.find_by_from_url(request.request_uri)
if redirect
redirect_to redirect.to_url, :status => :moved_permanently
else
render 'public/404', :status => :not_found, :layout => false
end
end
end
最後に、Route Globbingを使用して、リダイレクト用のURLと一致させます。詳細については、 http: //guides.rubyonrails.org/routing.htmlをご覧ください。
match '/produits/*' => 'redirection#index'
'é'のようなアクセント文字の場合、この値をデータベース内に格納する必要があります。MySQLの場合、database.yml内の接続を保存utf-8
および更新するようにデータベースサーバーを構成する必要があります。
encoding: utf8
collation: utf8_unicode_ci
次のコードでリダイレクトを試みることができます。それは完全に大丈夫です。# encoding: UTF-8
これらのアクセント文字があるため、ファイルの先頭にある必要があります。
# encoding: UTF-8
class RedirectionController < ApplicationController
def index
redirect_to "produits/les-pavages/paves-carres/item/48-pavés-carrés"
end
end