既存の Web サイトを置き換えるために、Rails で Web サイトを構築しています。古い URL の一部を新しい同等の URLにroutes.rb
リダイレクトしようとしています (一部の URL スラッグは変更されているため、動的な解決策は不可能です)。
私routes.rb
はこのように見えます:
match "/index.php?page=contact-us" => redirect("/contact-us")
match "/index.php?page=about-us" => redirect("/about-us")
match "/index.php?page=committees" => redirect("/teams")
にアクセス/index.php?page=contact-us
しても、にリダイレクトされません/contact-us
。これは、Rails が get 変数を削除して、 のみを照合しようとしているためだと判断しました/index.php
。たとえば/index.php?page=contact-us
、次のルートに渡すと、次の場所にリダイレクトされ/foobar
ます。
match "/index.php?page=contact-us" => redirect("/contact-us")
match "/index.php?page=about-us" => redirect("/about-us")
match "/index.php?page=committees" => redirect("/teams")
match "/index.php" => redirect("/foobar")
GET 変数を文字列に保持し、古い URL を希望どおりにリダイレクトするにはどうすればよいですか? Rails には、これを意図したメカニズムがありますか?