Ruby on rails 在Rails中从mydomain.com重定向到CamelCase版本(mydomain.com)
我想用url重写我的域名,将www.mydomain.com转换为www.mydomain.com(驼峰版) 我在ApplicationController中添加了一个帮助程序:Ruby on rails 在Rails中从mydomain.com重定向到CamelCase版本(mydomain.com),ruby-on-rails,url-rewriting,Ruby On Rails,Url Rewriting,我想用url重写我的域名,将www.mydomain.com转换为www.mydomain.com(驼峰版) 我在ApplicationController中添加了一个帮助程序: class ApplicationController < ActionController::Base before_filter :redirect_to_camel_case_domain def redirect_to_camel_case_domain if req
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
class ApplicationController
如果我将localhost重定向到127.0.0.1,它可以正常工作
由于request.host
中的字符串大小写降低,因此如果我将localhost重定向到localhost,它将进入无限循环request.env[“HTTP\u HOST”]
也有同样的问题
我正在使用heroku,因此无法使用.htaccess
如何获取请求的真实主机,而不是其小写值?域名都不区分大小写,通常用小写字母表示。我认为safari会自动“小写”任何包含大写字母的域名。这就是发生在你身上的事情:
URL中唯一区分大小写的是路径组件(第一个/之后的所有内容)转到Safari,它将保持大小写不变。虽然使用了Chrome,但它会自动降低大小写。这不是safari 5.1在我的mac上的表现。假设您可以在rails中检索请求域的非小写值,那么heroku应用程序上的许多用户都会遇到问题。在Lion上使用Safari 5.1.1进行了测试。针对前面的麻烦点,谢谢你的警告。