Редирект на https с www через htaccess

Итак, вам потребовалось сделать редирект, на домен www с протоколом https.

Рабочий код редиректа в данном случае выглядит так:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Обратите внимание, для того чтобы редирект работал нормально, SSL сертификат должен быть действителен для обоих доменов (с www и без).

Рассмотрим код, который находится после RewriteEngine on.
Первые 2 строки проверяют начинается ли домен с «www.», и если не начинается, то выполняется переадресация.
Оставшиеся строки, проверяют, что сайт запрашивается по протоколу https, и в противном случае переадресует на этот протокол.

Альтернативный вариант, которые делает то же самое:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]

Возможно вам будет интересно прочитать и про редирект на вариант сайта без www с учетом https.

Прочитайте также про правильный переезд на https, иначе могут возникнуть проблемы с индексацией поисковыми системами.

Небольшая шпаргалка, по htaccess: https://github.com/phanan/htaccess (en)

Пишите в комментариях, помогло вам или нет.

Была ли эта статья полезна?
Да
Нет