我正在 Rails 中建立一个网站来替换现有网站。在routes.rb
我试图将一些旧 URL 重定向到它们的新等价物(一些 URL slug 正在发生变化,因此不可能使用动态解决方案。)
我的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 是否为此提供了预期的机制?