これが私の設定ファイルです
<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リクエストを処理するロードバランサーがあります。どうすればよいかわからず、オンラインで見つけたソリューションはどれも機能していません。
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]