Иногда требуется “склеить” адрес сайта, с www на без www или наоборот. Суть в том, для пользователей например сайт www.testsite.com и testsite.com, будет одним и тем же сайтом, что не скажешь о поисковых системах, они воспринимают сайт www.testsite.com и testsite.com, как два разных сайта с одинаковым содержимым. При этом, страницы будет задваиваться в поисковых запросах и это может негативно сказаться на продвижении сайта. Для этого на сайте используют 301 редирект с www на без www.
Ниже опишем два метода, как сделать данное перенаправление и избежать проблем с задваиванием.
301 редирект с www на без www с помощью .htaccess
301 редирект домена с www, на без www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.testsite\.com$ [NC] RewriteRule ^(.*)$ http://testsite.com/$1 [R=301,L]
301 редирект домена с без www, на www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^testsite\.com$ [NC] RewriteRule ^(.*)$ http://www.testsite.com/$1 [R=301,L]
Примечание.
Обращаю внимание на то, что слеш в строке www.testsite\.com и testsite\.com, нужен для “экранирования” точки.
Также замечу, что необходимо обязательно проверять синтаксис того, что вы вносите в файл .htaccess, в противном случае вы рискуете получить 500 ошибку на сайте.
301 редирект с www на без www средствами web-сервера Nginx
301 редирект домена с без www, на www
server { server_name testsite.com; return 301 $scheme://www.testsite.com$request_uri; }
Редирект домена с www, на без www:
server { server_name www.testsite.com; return 301 $scheme://testsite.com$request_uri; }
Примечание.
После добавления редиректа в конфигурационный файл nginx, нужно проверить корректность конфигурации командой:
nginx -t
и после успешной проверки, выполнить его перезапуск командой
service nginx restart
или выполнить перезагрузку конфигурационного файла, командой
service nginx reload.