同じhttpdでHTTPをHTTPSにリダイレクトする方法


10

ここに私が持っているものがあります:

  • CentOS 5.4(32ビット)
  • インストールされたApache httpd(サーバーバージョン:Apache / 2.2.11(Unix))
  • mod_rewriteはすでに存在します

質問:VirtualHost定義を使用せずに単純なhttp://site.comhttps://site.com にリダイレクトする方法は?

PS:SFに関する後の回答で見つけようとしましたが、良い解決策が見つかりません。

ありがとう。

回答:


9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1私にはもっと理にかなっています。
cregox、2011年

あなたにその無限ループはありませんか?
アーネストミュラー

いいえ、テストしました。それはドキュメントの下でそれが助言される方法です-それの終わりを見てください。
cregox、2011年

1
これらのコマンドを.htaccessに挿入すると、HerokuにデプロイされたApache 2.4.10を使用して無限ループが発生します。そして、Cawasによって提案されたバリアントは、奇妙に私のURLを壊します。私は別のコマンドセットしようとしました: RewriteCond %{HTTP:X-Forwarded-Proto} !httpsRewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- ChromeとFirefoxの上で動作しますが、SafariとOperaのに失敗しました。興味深いことに、上記の3行を省略しRewriteEngine Onて無限ループが発生しなくなった場合でも、SafariとOperaでは失敗します(ChromeとFirefoxでも機能します)。
Purplejacket 2014

2

ディレクトリに基づいてmod_aliasおよびRedirectを使用できます。リンクされたドキュメントは、追加の詳細を識別します。

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.