2011-10-29 37 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

相关问题