2016-09-29 5 views
1

Я использую систему балансировки нагрузки AWS и в настоящее время перенаправляет все НТТР протоколу HTTPS с этим .htaccess регулярное выражение:Force HTTPS и WWW на AWS балансировки нагрузки

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

Это прекрасно работает, потому что у меня есть проверки здоровья, которые должны быть доступ к ним на 80. Однако в настоящее время при попытке доступа к https www я получаю ошибку DNS.

Что будет выглядеть в регулярном выражении, что отправляет все до https://www и передает проверку работоспособности на http в моих экземплярах?

Спасибо!

+1

Какая ошибка DNS, которую вы получаете? Возможно ли, что у вас нет записи DNS для субдомена www? –

ответ

0

На AWS за балансиром нагрузки вы должны обрабатывать вещи по-разному. Вы не будете проверять https обычным способом из-за разгрузки SSL с помощью балансировки нагрузки. Вам нужно будет проверить 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]`