1

如何根据条件在 routes.rb 中进行 301 重定向,如果某些参数为大写,则重定向到小写 URL。

我知道我可以使 URL 不区分大小写,但这不是我想要的。

例如,如果用户点击此 URL /Company/XYZ 或 /company/Xyz

他应该被重定向到/company/xyz

这甚至可以使用 301 重定向还是我必须使用 302 重定向。

谢谢

4

1 回答 1

2

我不知道如何在 中执行此操作routes.rb,但我也不确定这是否适合它。我会把它放到控制器动作中。就像是:

class CompaniesController < ApplicationController

  def show
    company_id = params[:id]
    if company_id =~ /\A[[:upper:]]+\z/
      redirect_to company_path(company_id.downcase), status: :moved_permanently
    end
    # Handle normal process flow.
  end

end

如果您愿意,您可以设置 abefore_filter并更通用地处理访问单个记录的所有情况(show, edit, update)。ApplicationController如果您想对所有模型执行此操作,您甚至可以放入一个过滤器。

于 2013-04-08T13:21:13.150 回答