Про редиректы с www и на https в интернете рассказано много. Однако для того, чтобы создать работоспособный 301 редирект с www на сайт без www, нужно учесть один нюанс:
SSL сертификат должен быть действителен для обоих доменов (с www и без).
А вот и рабочий пример кода, который вы можете использовать для настройки редиректа:
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Две строки после RewriteEngine on
создают переадресацию на сайт без www.
Также убедитесь в том, что у вас настроен редирект с http на https. Это нужно, чтобы у вас была только одна версия сайта, иначе это неблагоприятно скажется на поисковом продвижении.
Такую переадресацию можно выполнить при помощи следующего кода:
RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
Есть также альтернативный вариант:
RewriteCond %{ENV:HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
Не забывайте, что в самом верху, перед правилами RewriteCond и RewriteRule должна быть строка RewriteEngine on
В итоге код htaccess, который создает редирект с www на сайт без www и с http на https выглядит так:
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
Для htaccess есть сборник сниппетов, на все случаи жизни: https://github.com/phanan/htaccess (en)
Чтобы не возникло проблем с индексацией поисковыми системами, изучите соответствующие разделы:
Yandex: Переход сайта на HTTPS
Google: Перенос сайта с изменением URL
Успехов! Сработал ли у вас редирект, напишите в комментариях.