运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

ruby-on-rails – 如何在Rails路由中使用正则表达式进行重定向?

运维开发网 https://www.qedev.com 2020-08-09 18:44 出处:网络 作者:运维开发网整理
我在routes.rb中尝试重写规则可能是不言自明的: match "/:user/:photo-thumb.png" => redirect("/%{user}/photos/%{photo}/image?style=thumb"), :photo => /[a-zA-Z]+/ 我想将mysite.com/alice/foo-thumb.png之类的内容重定向到mysi
我在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)

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号