Heroku的+机架重写

仍不能得到这个工作... Rails的3.1.3,1.9.2红宝石在Heroku上的雪松堆栈。

试图用https://github.com/jtrupiano/rack-rewrite来进行HTTP://域名301重定向到http://www.domain没有运气(应用的工作​​原理,但没有重定向发生在所有)。

/config/initializers/rack_rewrite.rb(MyAppName实际上是正确的名称,domain.com是实际的域):

MyAppName::Application.config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do r301 %r{.*}, 'http://www.domain.com$&', :if => Proc.new {|rack_env| rack_env['SERVER_NAME'] != 'www.domain.com' } end

加入的Gemfile:

gem 'rack-rewrite'

难道“宝玉安装机架改写”,“包安装”。

没有运气。

有任何想法吗?

更新:

我已经找到了问题的一部分。 因为我只是想以服务“的index.html”,它是“/样式”文件夹中,似乎有“的index.html”中的“/公众”覆盖机架重写。 如果我删除“的index.html”,改写了工作...但现在我不知道从哪里把这些文件,或设置routes.rb中默认情况下直接向index.html页面...任何帮助?

--------------解决方案-------------

更改

rack_env['SERVER_NAME'] != 'www.domain.com'

rack_env['SERVER_NAME'] == 'domain.com'

我想,也许env中[“SERVER_NAME”]可能是在这种情况下,像'app7009.intra.foo“内部DNS。 我做一些东西,在Heroku的中间件域:我看这两个ENV ['REQUEST_URI']和ENV ['PATH_INFO'],主要是因为POW-服务器我在本地使用不设置REQUEST_URI。 这是一个有点不同的不同的服务器如何填充ENV散列,我希望这个URL请求部分将与像机架更加规范。

env['REQUEST_URI'] !~ /www.domain.com/

我是新来这个,所以我不合乎逻辑的解释,为什么它的工作原理,但它为我工作,当我把代码config/application.rb ,而不是一个新的文件/config/initializers/rack_rewrite.rb

分类:Ruby on Rails的 时间:2015-03-15 人气:2
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.546 (s). 10 q(s)