如何根据条件在 routes.rb 中进行 301 重定向,如果某些参数为大写,则重定向到小写 URL。
我知道我可以使 URL 不区分大小写,但这不是我想要的。
例如,如果用户点击此 URL /Company/XYZ 或 /company/Xyz
他应该被重定向到/company/xyz
这甚至可以使用 301 重定向还是我必须使用 302 重定向。
谢谢
如何根据条件在 routes.rb 中进行 301 重定向,如果某些参数为大写,则重定向到小写 URL。
我知道我可以使 URL 不区分大小写,但这不是我想要的。
例如,如果用户点击此 URL /Company/XYZ 或 /company/Xyz
他应该被重定向到/company/xyz
这甚至可以使用 301 重定向还是我必须使用 302 重定向。
谢谢
我不知道如何在 中执行此操作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
如果您想对所有模型执行此操作,您甚至可以放入一个过滤器。