2016-09-29 8 views
1

上のWWW私はAWSのロードバランサを使用しており、現在、この.htaccessの正規表現でhttpsにすべてのHTTPをリダイレクトしています:私はでなければならヘルスチェックを持っているのでフォースHTTPSおよびAWSのロードバランサ

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

これは正常に動作しますしかし、現時点ではhttps wwwにアクセスしようとするとDNSエラーが発生します。

正規表現は、すべてをhttps://wwwにルーティングし、自分のインスタンス上でhttpの健全性チェックを渡しますか?

ありがとうございました!

+1

取得したDNSエラーは何ですか? wwwサブドメインのDNSエントリがない可能性はありますか? –

答えて

0

ロードバランサの背後にあるAWSでは、処理方法が異なります。 Load BalancerでのSSLオフロードのため、通常の方法でhttpsをチェックすることはありません。 X-Forwarded-Protoを確認する必要があります

これは次のようにする必要があります。

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{SERVER_NAME} ^(www\.)?(.*)$ [NC] 
RewriteRule ^.*$ https://www.%2%{REQUEST_URI} [R=301,L]` 
関連する問題