2011-10-29 34 views
0

駝峯版本(MyDomain.com)我想URL重寫我的域名,轉化www.mydomain.comwww.MyDomain.com(駝峯版)。重定向從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 

如果我重定向本地主機127.0.0.1它工作正常。

由於request.host串下降情況下,進入一個無限循環,如果我重定向本地主機到本地主機
同樣的問題request.env["HTTP_HOST"]

我使用Heroku的,所以我不能使用的.htaccess

我怎樣才能得到請求,它不降低的情況下價值的真正主人?

回答

1

域名不區分大小寫,它們通常表示爲小寫。我認爲Safari會自動「降低」你輸入的任何域名,包含大寫字母。因此,這是對你發生了:

  1. 將瀏覽器指向mydomain.com
  2. 您的服務器重定向到MyDomain.com
  3. 您的瀏覽器將其轉換爲mydomain.com你回來
  4. 步驟1

唯一認爲可以情況下在一個URL是敏感的路徑組件(第一後一切/)

+0

轉到HTT p:// LocalHost:3000 /使用Safari,它將保持CamelCased。儘管使用Chrome,它會自動降低情況。 – Guillaume

+0

好吧,這不是如何Safari 5.1行爲在我的Mac上。如果您有可能在rails中檢索請求域的非小寫值,那麼您的heroku應用程序中會有很多用戶遇到問題。 – rpechayr

+0

在Lion上使用Safari 5.1.1進行測試。指出了前面的麻煩,謝謝你的警告。 – Guillaume

相關問題