web-dev-qa-db-ja.com

.htaccessのapache HTTP:X-Forwarded-Protoが開発環境でリダイレクトループを引き起こしている

これから.htaccessを更新する必要がありました。

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

これに:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

aWS Elasic Load Balancerの背後で機能するようにします。

それはすべてAWSで正常に動作するようですが、ローカル環境ではリダイレクトループで立ち往生しています。

両方の環境でこのセットアップを正しく機能させるにはどうすればよいですか?

44
greg

両方の環境で機能させるには、両方の条件を組み合わせることができます。

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301,NE]
84
anubhava

共有ホスティング(マスターホスト)の特殊なケースがありましたが、以下を除くすべてが失敗しました:

  RewriteCond %{HTTP:X-Forwarded-Port} !443
  RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
1
Nick Kovalsky