1

特定のパラメータが大文字の場合、小文字の URL にリダイレクトするという条件に基づいて、routes.rb で 301 リダイレクトを行うにはどうすればよいですか。

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

before_filter必要に応じて、単一のレコードがアクセスされるすべてのケース ( showedit、 )に対して、 をセットアップして、これをより一般的に処理することができますupdateApplicationControllerすべてのモデルに対してこれを行いたい場合は、フィルターを入れることもできます。

于 2013-04-08T13:21:13.150 に答える