web-dev-qa-db-ja.com

ec2 Apache2 ubuntuを使用してすべてのWebトラフィックをhttpsに転送しようとしたときに、「リダイレクトエラーが多すぎます」を回避するにはどうすればよいですか?

これが私の設定ファイルです

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    Redirect permanent / https://www.mywebsite.co/
    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

# vim: syntax=Apache ts=4 sw=4 sts=4 sr noet

そして、ブラウザmywebsite.coに入力すると、正常にリダイレクトされます https://mywebsite.co ただし、このエラーのためにコンテンツがページに表示されません(Google Chromeによる)

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

ポート80を使用してhttpリクエストを処理するEC2インスタンスと、httpsリクエストを処理するロードバランサーがあります。どうすればよいかわからず、オンラインで見つけたソリューションはどれも機能していません。

enter image description here

6
Markus Proctor

ELBに到達したときに、ポート443を介してSSL経由で要求していますが、安全でないポート80としてバックエンドに要求しています。これは問題ありませんが、リバースプロキシであるため、構成はこれが443を超えることになっていることを認識しません。それをプロキシします。 Webサーバーにとって、これはポート80の安全でない要求であるため、SSLポート443にリダイレクトしようとします。これが、ループしている理由です。

リダイレクトを行う代わりに、転送されたヘッダーを分析するために書き換えを検討する場合があります。例:

RewriteEngine On
RewriteCond %{HTTP:X-FORWARDED-PORT} !=443
RewriteRule ^(.*)$ https://www.mywebsite.co$1 [R=301,NE,L]
12
onetechnical