gpt4 book ai didi

ruby-on-rails - 在 Rails 3 route 更改参数

转载 作者:太空宇宙 更新时间:2023-11-03 16:36:53 25 4
gpt4 key购买 nike

在我们的一个 Controller 上,我们将传入的 Google 流量发送到无效的 URL 参数:

/search/?klass=论坛

相反,它应该是:

/search/?klass=论坛

目前我有一些执行此操作的 controller#index 代码:

    if params[:klass] == "forum"
params.delete(:action) && params.delete(:controller)
params[:klass] = "forums"
@query = params.to_query
redirect_to "/search?#{@query}", :status => 301 and return
end

我很好奇这是否可以在 routes.rb 中完成,这样它就不会影响我们的堆栈,但仍然正确地 301。我见过正则表达式用于验证查询字符串中的某些参数,但没有一个用于重写这些参数的值。

最佳答案

您可以尝试使用 nginx 或 apache 来处理它,或者您可以使用这个使用 Rack 的 hacky 解决方案:

get "/search/" =>  proc { |env| Rack::Request.new(env).params['klass'] == "forum" ? [ 302, {'Location'=> "/search/?klass=forums" }, [] ] : [ 302, {'Location'=> "/" }, [] ] }

关于ruby-on-rails - 在 Rails 3 route 更改参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6712609/

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