Редиректы на WWW через htaccess
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
ещё вариант
RewriteCond %{HTTP_HOST} ^example.ru RewriteRule (.*) https://www.example.ru/$1 [R=301,L]
ещё вариант
RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]
Исключение для поддоменов. Настраиваем редирект на WWW только для основного домена, к поддоменам не будет применяться этот редирект
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %1 !^(.+)\.example\.com$ [NC] RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Описание
Один из базовых редиректов, который позволяет выбрать зеркало сайта с WWW в URL-адресе, например https://www.site.ru/. Вообще на мой взгляд лучше конечно смотрится без WWW, чисто визуально даже. И поэтому, если только начали делать сайт или только сделали, то лучше избавиться от WWW, но если у сайта уже есть позиции, то лучше оставить и настроить редирект с версии без WWW. Иначе есть большие шансы потерять часть трафика и позиций при склейке нового зеркала. Хоть поисковые системы и обещают, что их алгоритмы настроены отлично и ничего потеряться не должно, на практике зачастую вижу обратное. В среднем около 20-30% трафика срезается при смене зеркала, и потом очень долго заново наращивается до прежних значений.
Поэтому следуя святому правилу «Работает — не лезь!», лучше не менять адрес зеркала и настроить редирект на WWW версию сайта.