我们最近改变了我们网站上的产品名称,从“手镯”改为“腕带”,为了SEO的目的,我们需要保留旧的路线。
基本上,这些路线
Www.hostname.com/products/手镯/系列-1/
www.hostname.com/products/bracelets/series-1/small-purple
该路由到
www.hostname.com/products/wristbands/series-1/
www.hostname.com/products/wristbands/series-1/small-purple
我正在阅读这里的教程http://guides.rubyonrails.org/routing.html#redirection,看上去我将使用块语法,但仍然不知道如何正确地完成路由。我希望了解更多有关路由文件以及,所以任何信息都会很好。提前感谢
match "/bracelets/:name" => redirect {|params| "/wristbands/#{params[:name]}" }编辑:
好的,我已经玩了一段时间了,下面是我尝试过的方法
match "/products/bracelets/:name/:name2" => redirect {|params| "/products/wristbands/#{params[:name].pluralize}/#{params[:name2].pluralize}" }输入网址: localhost:3000/products/bracelets/series-1/small-purple
输出URL: localhost:3000/products/腕带
错误消息:无效产品:系列-1
(所以比赛成功了,但重定向没有成功)
如果我将匹配更改为检查如下所示的参数:
match "/products/balance-bracelets/:name/:name2" => redirect {|params| "/products/wristbands/#{params.inspect}" }我得到以下信息:
/products/wristbands/{:name=>"series-1", :name2=>"small-purple"}因此,它似乎没有识别第二个斜杠'/‘或其他什么。有什么想法吗?
发布于 2012-10-16 05:30:20
我也处在同样的情况下,这对我来说很管用:
match "/products/bracelets/:name/:name2" => redirect {|params, request| "/products/wristbands/#{params[:name].pluralize}/#{params[:name2].pluralize}" }我已经通过了两个农场进入这座街区。
发布于 2017-04-28 00:10:55
您可以在Rails 5中这样做。
match '/products/bracelets/:name/:name2', to: "/products/wristbands/%{name}/%{name2}"https://stackoverflow.com/questions/12906097
复制相似问题