Итак, вам потребовалось сделать 301 редирект, на домен 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.
Чтобы не возникло проблем с индексацией поисковыми системами, изучите соответствующие разделы:
Yandex: Переход сайта на HTTPS
Google: Перенос сайта с изменением URL
Небольшая шпаргалка, по htaccess: https://github.com/phanan/htaccess (en)
Пишите в комментариях, помогло вам или нет.