У меня есть сервер Apache за балансировщиком нагрузки (простой Amazon). Я хочу перенаправить любой входящий трафик, отличный от 443, на 443. Я бы предпочел использовать только один виртуальный хост apache. Итак, я пытаюсь определить это, если заголовок HTTP_X_FORWARDED_PORT не равен 443.
Я проверил Документы RewriteCond и он работает только с ограниченным набором заголовков HTTP.
В основном я делаю вот что:
<VirtualHost *:80>
ServerName www.example.com
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_PORT} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
....
</VirtualHost>
Но RewriteCond не распознает HTTP_X_FORWARDED_PORT.
Есть ли другой способ сделать это (всего с одним VirtualHost)? (какая-то проверка входящего заголовка?)
Спасибо, Лэнс
Чуть дальше по RewriteCond
документ:
%{HTTP:header}
, где заголовком может быть любое имя HTTP MIME-заголовка
Таким образом, вы можете сделать это, но не в такой форме, как предварительно извлеченные заголовки.
Попробуй это:
RewriteCond %{HTTP:X-Forwarded-Port} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]