谷歌以某种方式将我的主页编入索引https://mydomain.com。当您进行网站:mydomain.com搜索时,第一个结果是https://mydomain.com,我没有SSL证书,也不想做https。现在,我们的访问者在他们的浏览器中收到了丑陋的警告(因为heroku默认提供他们的* .heroku证书)。
似乎我可以使用rack-rewrite gem进行301重定向,但我无法找到原因。
那么,什么是机架重写配方将所有https://重定向到http://?我所能找到的只是关于如何做反向事件或进行规范重定向的信息。
答案 0 :(得分:1)
嗯,没有经过测试,但是会有类似的工作吗?
r301 %r{.*}, 'http://non-secure-domain.com$&', :if => Proc.new {|rack_env|
rack_env['SERVER_PORT'] != '80'
}
答案 1 :(得分:0)
rack-rewrite的文档在https://github.com/jtrupiano/rack-rewrite#scheme
中提到了一个很好的方法# Redirect all https traffic to http
r301 %r{.*}, 'http://www.example.tld$&', :scheme => 'https'
答案 2 :(得分:0)
使用rack-rewrite中的scheme
选项只会导致heroku无限循环。由于heroku将代理您的工作人员的方式,您也无法在端口为80。由于这种方式以及路由层的工作方式,您必须检查HTTP_X_FORWARDED_PROTO
标题:
r301 %r{.*}, 'http://example.com$&', :if => Proc.new { |rack_env|
rack_env['HTTP_X_FORWARDED_PROTO'] == 'https'
}