最近、ウェブサイトの製品名を「ブレスレット」から「リストバンド」に変更したため、SEO の目的で古いルートを維持する必要があります。
基本的に、これらのルート
www.hostname.com/products/bracelets/series-1/
www.hostname.com/products/bracelets/series-1/small-purple
にルーティングする必要があります
www.hostname.com/products/wristbands/series-1/
www.hostname.com/products/wristbands/series-1/small-purple
ここでチュートリアルを読んでいますhttp://guides.rubyonrails.org/routing.html#redirection、ブロック構文を使用するように見えますが、ルートを適切に行う方法はまだわかりません。ルートファイルについてももっと知りたいと思っているので、どんな情報でも素晴らしいでしょう。前もって感謝します
match "/bracelets/:name" => redirect {|params| "/wristbands/#{params[:name]}" }
編集:
OK、私はそれで少し遊んでいます。これが私が試したものでどのように機能するかです
match "/products/bracelets/:name/:name2" => redirect {|params| "/products/wristbands/#{params[:name].pluralize}/#{params[:name2].pluralize}" }
入力 URL: localhost:3000/products/bracelets/series-1/small-purple
出力 URL: localhost:3000/products/wristbands
エラー メッセージ: 無効な製品: series-1
(したがって、一致は機能しましたが、リダイレクトは機能しませんでした)
次のようにパラメーターを検査するように一致を変更すると:
match "/products/balance-bracelets/:name/:name2" => redirect {|params| "/products/wristbands/#{params.inspect}" }
私は以下を取得します:
/products/wristbands/{:name=>"series-1", :name2=>"small-purple"}
そのため、2 番目のスラッシュ「/」などを認識していないようです。何か案は?