Я пытаюсь перенаправить все URL-адреса на https в веб-приложении.
У меня есть экземпляр ec2 за эластичным балансировщиком нагрузки. SSL прерывается на балансировщике нагрузки.
Любые попытки перенаправления в конечном итоге дают мне знакомое «эта страница запрашивает так, что никогда не будет завершена».
Балансировщик нагрузки перенаправляет 443 и 80 на порт 80 экземпляра.
Это то, что у меня есть в моем .htaccess.
RewriteCond %{X-FORWARDED-PROTO} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Кто-нибудь знает, как это сделать? Доброе спасибо,
непроверено .. но я пробую это
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
МайкОтвет в основном правильный, но важно отметить, что балансировщику нагрузки все равно необходимо будет выполнить процедуру проверки работоспособности, чтобы убедиться, что экземпляр ec2 все еще жив и работает. Это можно сделать с помощью дополнительных RewriteCond
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/alive\.html$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
...где alive.html
это имя вашего файла проверки здоровья.