如何在Rails路由中用正则表达式实现复杂重定向?
- 内容介绍
- 文章标签
- 相关推荐
本文共计197个文字,预计阅读时间需要1分钟。
我在`routes.rb`中尝试重写规则可能不够明确:`match /:user/:photo-thumb.png=> redirect(/%{user}/photos/%{photo}/image?style=thumb), :photo=> /[a-zA-Z]+/`, 我想将mysite.com/alice/foo-thumb.png这类内容重定向到相应的地址。
我在routes.rb中尝试重写规则可能是不言自明的:match "/:user/:photo-thumb.png" => redirect("/%{user}/photos/%{photo}/image?style=thumb"), :photo => /[a-zA-Z]+/
我想将mysite.com/alice/foo-thumb.png之类的内容重定向到mysite.com/alice/photos/foo/image?style=thumb
但上述尝试是错误的.修理它的任何想法?
以下对我有用:match "/:user/:photo_thumb.png" => redirect{|p| "/#{p[:user]}/photos/#{p[:photo_thumb].split('-')[0]}/image?style=thumb" }, :constraints => { :photo_thumb => /[a-zA-Z]*\-thumb/ }
我很想找到一种更简单的方法来做到这一点. (正如tadman指出的那样,使用nginx重写可能会更好.请参阅此相关问题:Routes.rb vs rack-rewrite vs nginx/apache rewrite rules)
本文共计197个文字,预计阅读时间需要1分钟。
我在`routes.rb`中尝试重写规则可能不够明确:`match /:user/:photo-thumb.png=> redirect(/%{user}/photos/%{photo}/image?style=thumb), :photo=> /[a-zA-Z]+/`, 我想将mysite.com/alice/foo-thumb.png这类内容重定向到相应的地址。
我在routes.rb中尝试重写规则可能是不言自明的:match "/:user/:photo-thumb.png" => redirect("/%{user}/photos/%{photo}/image?style=thumb"), :photo => /[a-zA-Z]+/
我想将mysite.com/alice/foo-thumb.png之类的内容重定向到mysite.com/alice/photos/foo/image?style=thumb
但上述尝试是错误的.修理它的任何想法?
以下对我有用:match "/:user/:photo_thumb.png" => redirect{|p| "/#{p[:user]}/photos/#{p[:photo_thumb].split('-')[0]}/image?style=thumb" }, :constraints => { :photo_thumb => /[a-zA-Z]*\-thumb/ }
我很想找到一种更简单的方法来做到这一点. (正如tadman指出的那样,使用nginx重写可能会更好.请参阅此相关问题:Routes.rb vs rack-rewrite vs nginx/apache rewrite rules)

