Задать вопрос

Как сохранить протокол при редиректе?

Задача с виду простая, сохранить протокол при ридиректа. Вот только штатного метода нет.

Дано:
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Проблема в том что ответа сервера нет htttp или https может быть off on true false но а это к делу не пришить.
Есть Vary: HTTPS
но http он вообще не возвращает.

Как вариант что-то вроде
RewriteCond %{HTTP:X-Forwarded-Proto} http(s) [NC]
#RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^331/$ /best/http%1/%2/3 [L,R=301]


с коментом работает %1 а вот со вторым кондом уже нет ;(
  • Вопрос задан
  • 155 просмотров
Подписаться 2 Оценить Комментировать
Решение пользователя Виктор Таран К ответам на вопрос (2)
shambler81
@shambler81 Автор вопроса, куратор тега htaccess
RewriteCond %{ENV:HTTPS} on
RewriteRule .* - [E=SSL:s]
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]

спасибо всем решение нашел сам.
Если кто-то предложит что получше будем смотреть.
Ответ написан
Комментировать