Веб-серверы и поисковые системы различают адреса с префиксом www
и без него как два отдельных ресурса. Так, www.example.com
и example.com
с технической точки зрения — разные сайты. Если содержимое на них идентично, это может привести к дублям страниц в индексе поисковых систем, снижению SEO-рейтинга и потере трафика. Чтобы этого избежать, необходимо выполнить принудительный 301 редирект, который навсегда укажет, какой вариант является приоритетным.
С точки зрения системного администратора с двадцатилетним опытом, такая практика должна быть обязательной при вводе сайта в эксплуатацию. Ниже представлены надёжные методы реализации редиректа как для Apache (через .htaccess
), так и для nginx.
301 редирект с www на без www через .htaccess (Apache)
Пример 1: редирект www
на без www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
Пример 2: редирект без www
на www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Комментарии администратора:
Регулярные выражения экранируют точку (
\.
), чтобы указать именно домен, а не любой символ.Параметр
[NC]
означает "без учёта регистра" (например,WWW.EXAMPLE.COM
тоже обработается).Всегда проверяйте работоспособность сайта после внесения изменений — малейшая ошибка может привести к
500 Internal Server Error
.
301 редирект с www на без www через nginx
Пример 1: редирект с example.com
на www.example.com
server {
listen 80;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
Пример 2: редирект с www.example.com
на example.com
server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
Проверка и применение изменений:
После внесения правок в конфигурацию nginx:
nginx -t
Если ошибок нет:
service nginx reload
Или при необходимости:
service nginx restart
Дополнительные примеры и рекомендации
Универсальный редирект (динамический для любых доменов)
server {
listen 80;
server_name ~^www\.(?<domain>.+)$;
return 301 https://$domain$request_uri;
}
Этот пример использует регулярное выражение для любого поддомена www.
, направляя его на основной домен без www
.
Apache — универсальный редирект
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
Это правило автоматически удаляет www.
с любого домена.
Почему важен 301 редирект
SEO: исключает дубли страниц и повышает доверие поисковых систем.
Безопасность: позволяет настроить единый HSTS-профиль и избежать конфликтов с сертификатом SSL.
Скорость и стабильность: пользователи всегда попадают на основной домен, независимо от ввода.
Настраивая 301 редиректы, особенно в вопросах "www против без www", важно понимать, что это не просто технический нюанс, а один из тех малозаметных элементов, которые отличают аккуратно построенную инфраструктуру от хаоса. Не опытные разворазивают сайты, которые теряют позиции в поиске из-за дублированных URL, сталкивалаясь с ошибками при настройке HTTPS и даже блокировались браузерами из-за конфликтов с сертификатами.
Всё начинается с банального — не настроили правильный редирект.
Правильный 301 — это не только SEO. Это доверие. Это порядок в URI. Это предсказуемость поведения сайта. Он избавляет от неоднозначности и делает систему понятной как людям, так и машинам.
Вот несколько принципов, которыми я лично руководствуюсь:
Делайте выбор один раз — и будьте в нём последовательны
Решили использовать
example.com
— везде используйте именно его. Пропишите редирект, обновитеrobots.txt
, настройте канонические ссылки и проверьте конфигурации CMS. Не допускайте микса в исходящих ссылках.
Редирект должен быть строгим и быстрым
Не усложняйте логику. Используйте
301 permanent
вместо302
, если это ваш окончательный выбор. Обеспечьте минимальное количество переходов и отсутствие циклических переадресаций.
Тестируйте в песочнице
Перед применением на проде — протестируйте. Например, на поддомене
test.example.com
. Особенно если речь идёт о wildcard-редиректах с регулярными выражениями.
Всегда проверяйте влияние на SEO
Проверьте в Google Search Console, как индексируются страницы. Посмотрите отчёты по дублирующим URL. Редирект — это операция на уровне инфраструктуры, но последствия у неё поисковые и коммерческие.
Делайте резервные копии конфигураций
Простое правило: перед каждым изменением
.htaccess
илиnginx.conf
— копия в карман. Это спасёт не один раз. А ещё лучше — ведите версионирование (например, через git).
Редирект — это как дорожный знак: он не должен путать, он должен направлять. Хороший администратор — это тот, кто предугадывает, куда пользователь пойдёт дальше, и помогает ему не заблудиться. 301 — это ваше "направо" вместо тупика.
Не ленитесь. Настройте один раз правильно — и забудете об этой проблеме на годы. Но сделаете плохо — и она будет преследовать вас в логах, отчётах и тикетах службы поддержки.
Заключение
Настройка корректного 301 редиректа между версией сайта с www
и без www
— важная часть базовой оптимизации и администрирования. Это должно входить в чек-лист при запуске любого веб-проекта. Независимо от выбранного веб-сервера, реализация занимает считанные минуты, но приносит ощутимую пользу как в плане безопасности, так и SEO.
Если вы используете Apache, правки в .htaccess
применяются сразу. Для nginx — не забудьте перезагрузить конфигурацию после проверки. И главное: всегда тестируйте изменения, чтобы избежать недоступности сайта.