redirect("/%{user}/photos/-6ren">
gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:52 27 4
gpt4 key购买 nike

我的 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)

关于ruby-on-rails - 如何在 Rails 路由中使用正则表达式进行重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5799024/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com