2011-10-29 7 views
0

でキャメルケース版(MyDomain.com)に私はwww.MyDomain.com(キャメルケース版)へwww.mydomain.comを変換し、自分のドメインを書き換えるURLたいと思います。リダイレクトmydomain.comからRailsの

私はApplicationControllerにでヘルパーを追加しました:

class ApplicationController < ActionController::Base 

    before_filter :redirect_to_camel_case_domain 

    def redirect_to_camel_case_domain 

     if request.host == "localhost"  
     redirect_to request.url.gsub(/localhost/, '127.0.0.1') 
     return false 
     end 
    end 
    end 

私はlocalhostのに127.0.0.1をリダイレクトする場合、それは正常に動作します。

request.host内の文字列は、ケースを下げているので、私はrequest.env["HTTP_HOST"]localhostの
LocalHostというに同じ問題をリダイレクトする場合は、それが無限ループに入りました。

私はHerokuの使用しているので、私は

を.htaccessを使用することはできませんどのように要求ではなく、その下降ケース値の実際のホストを得ることができますか?

答えて

1

ドメイン名はすべて大文字と小文字を区別せず、通常小文字で表されます。私はサファリが大文字を含むあなたが入力したどんなドメイン名も自動的に "小文字"にすると思います。だから、これはあなたに何が起こるかです:

  1. ポイントブラウザmydomain.comへ
  2. サーバーは、お使いのブラウザはあなたが戻ってステップにあるmydomain.com
  3. に変換し
  4. MyDomain.com
  5. にリダイレクト1

THEだけでそのURLに大文字と小文字を区別することができ、パスコンポーネント(最初の後のすべてが/)

+0

ゴーHTTにいると思いますp:// LocalHost:3000/SafariでCamelCaseされたままになります。 Chromeでは自動的に下げられます。 – Guillaume

+0

これはサファリ5.1が私のMacでどのように動作するかではありません。リクエストドメインの小文字でない値を取り出すことが可能であると仮定して、あなたのherokuアプリで多くのユーザーに問題が発生します。 – rpechayr

+0

LionでSafari 5.1.1でテスト済みです。先のトラブルを踏まえたポイント、警告ありがとうございました。 – Guillaume