在mails中从mydomain.com重定向到CamelCase版本(MyDomain.com)

时间:2011-10-29 17:14:56

标签: ruby-on-rails url-rewriting

我想url重写我的域名,将 www.mydomain.com 转换为 www.MyDomain.com (Camel Case版本)。

我在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中的字符串被降低了,如果我将 localhost 重定向到 LocalHost ,它会进入无限循环 与request.env["HTTP_HOST"]相同的问题。

我正在使用heroku,所以我不能使用.htaccess

如何获得请求的真实主机,而不是降低案例值?

1 个答案:

答案 0 :(得分:1)

域名全部不区分大小写,通常表示为小写。我认为safari会自动“降低”您输入的包含大写字母的域名。所以这就是你发生的事情:

  1. 将浏览器指向mydomain.com
  2. 您的服务器重定向到MyDomain.com
  3. 您的浏览器会将其转换为mydomain.com
  4. 你回到了第1步
  5. 只认为URL中可以区分大小写的是路径组件(第一个/之后的所有内容)