我想为每个以/articles
开头的路径设置永久重定向到以/blog
开头的类似路径。
我知道如何在路由中单独重定向路径,例如
match "/articles/" => redirect("/blog/")
但是,如果我还想重定向路径,如/articles/:id
和/articles/category/:id
等,我也需要为这些重定向。
我希望有一种方法可以一下子重定向所有这些路径,无论是现在的还是未来的。
我意识到我可以在控制器中使用before_filter
相对容易地做到这一点,但我相信这种行为属于路由,我希望保持它在那里。
match '/articles(/*path)' => redirect { |params, req| "/blog/#{params[:path]}" }
编辑
问题是捕获带有参数的路由,现在应该解决
按照rails指南,应该这样做:
match "/articles(/:action(/:id(.:format)))" => redirect {|p, req| "/blog/#{req.subdomain}" }
从重定向中提取
我希望这对你有帮助!