1

不知何故,谷歌将我的主页索引为https://mydomain.com。当您进行 site:mydomain.com 搜索时,第一个结果是https://mydomain.com并且我没有 SSL 证书并且不想执行 https。当然,现在我们的访问者会在他们的浏览器中收到丑陋的警告(因为 heroku 默认提供他们的 *.heroku 证书)。

看来我可以使用 rack-rewrite gem 进行 301 重定向,但我就是找不到方法。

那么,将所有 https:// 重定向到 http:// 的机架重写配方是什么?我能找到的只是关于如何做相反的事情或进行规范重定向的信息。

4

3 回答 3

1

嗯,未经测试,但是这样的东西会起作用吗?

r301 %r{.*}, 'http://non-secure-domain.com$&', :if => Proc.new {|rack_env|
  rack_env['SERVER_PORT'] != '80'
}
于 2013-01-15T16:48:37.683 回答
0

rack-rewrite 的文档在https://github.com/jtrupiano/rack-rewrite#scheme提到了一个很好的方法

# Redirect all https traffic to http
r301 %r{.*}, 'http://www.example.tld$&', :scheme => 'https'
于 2013-11-26T17:02:15.990 回答
0

使用schemerack-rewrite 的选项只会导致 heroku 上的无限循环。您也不能使用 80 端口,因为 heroku 将代理您的工作人员。由于这一点以及路由层的工作方式,您必须检查HTTP_X_FORWARDED_PROTO标头:

r301 %r{.*}, 'http://example.com$&', :if => Proc.new { |rack_env|
  rack_env['HTTP_X_FORWARDED_PROTO'] == 'https'
}
于 2014-07-11T20:18:51.450 回答