Ruby on rails 在将旧url重定向到新url后,Rails重定向的url将给出302而不是301状态
我刚刚在rails应用程序上实现了Ruby on rails 在将旧url重定向到新url后,Rails重定向的url将给出302而不是301状态,ruby-on-rails,Ruby On Rails,我刚刚在rails应用程序上实现了friendly\u id。我把这些变化推到了生产上。以前的url是: https://example.com/search?category_id=1 在实现了friendly\u id之后是这样的 https://example.com/search?category_id=name My控制器将旧url重定向到新url的代码如下: if params[:category_id].present? and params[:category_id].to_s
friendly\u id
。我把这些变化推到了生产上。以前的url是:
https://example.com/search?category_id=1
在实现了friendly\u id
之后是这样的
https://example.com/search?category_id=name
My控制器将旧url重定向到新url的代码如下:
if params[:category_id].present? and params[:category_id].to_s !~ /\D/
category = Category.find_by_id(params[:category_id])
return redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)) if category.present?
当测试人员开始测试it SEO优化时,他们发现url重定向正在产生一种奇怪的状态。就像它从302->301->200。其中as应生成301状态。如何解决这个问题?如何使其生成301状态?您可以通过
重定向到来传递状态
选项,例如
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)), status: 301 if category.present?
if params[:category_id].to_s !~ /\D/ && Category.find_by_id(params[:category_id])
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)) and return
end
阅读更多
另外,我很好奇为什么您需要return
?如果你真的需要,我认为正确的语法应该是redirect\u to and return
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)), status: 301 if category.present?
if params[:category_id].to_s !~ /\D/ && Category.find_by_id(params[:category_id])
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)) and return
end
您可以通过重定向到来传递状态
选项,例如
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)), status: 301 if category.present?
if params[:category_id].to_s !~ /\D/ && Category.find_by_id(params[:category_id])
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)) and return
end
阅读更多
另外,我很好奇为什么您需要return
?如果你真的需要,我认为正确的语法应该是redirect\u to and return
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)), status: 301 if category.present?
if params[:category_id].to_s !~ /\D/ && Category.find_by_id(params[:category_id])
redirect_to search_equipments_path(request.query_parameters.merge(category_id: category.slug)) and return
end