1

どういうわけか、Google は私のホームページを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のオプションを使用する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'
}
于 2014-07-11T20:18:51.450 に答える