Как настроить редирект с www на без www

При проведении SEO-оптимизации сайта общепринятой практикой является 301 редирект, например, с сайта http://www.yoursite.com на сайт http://yoursite.com. Это делается в первую очередь для того, чтобы поисковые роботы не считали эти сайты разными и, соответственно, не разделяли ссылочную популярность вашего сайта между этими доменами. Кроме того, я считаю, что url-пути страниц сайта должны быть максимально простыми, но информативными, следовательно, наличие www вначале немного излишне.

Рассмотрим настройку 301 редиректа на примере сайта, который работает на VPS-сервере DigitalOcean под управлением веб-сервера Nginx и операционной системы Debian 8.5. Хорошее руководство можно также найти на сайте How To Redirect www to Non-www with Nginx on CentOS 7.

1. Настройка DNS

Необходимо добавить новую DNS-запись типа А со значением "www" и указать тот же IP-адрес, который используется для записи со значением "@". На рисунке добавленная запись отмечена плюсом:

Добавление DNS-записи

Изменения вступят в силу не мгновенно, а может понадобиться минут 10-15.

2. Настройка сервера Nginx

Первого пункта недостаточно. Следует настроить сервер Nginx, потому что DNS не делает нужный нам редирект, а это выполняет веб-сервер. Открываем конфигурационный файл:

nano /etc/nginx/sites-enabled/default

и добавляем еще одну запись для раздела server:

# Существующая конфигурация
server {
    server_name yoursite.com;
    # ...
}
# Добавленный редирект
server {
    server_name www.yoursite.com;
    return 301 $scheme://yoursite.com$request_uri;
}

Сохраняем файл и перезапускаем сервер:

service nginx restart

Можно проверить как работает перенаправление с сайта с www на без www:

curl -I www.yoursite.com

Получим ответ типа такого:

HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.2
Date: Sat, 16 Jul 2016 21:30:23 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://yoursite.com/

Теперь перенаправление работает для всех путей сайта: www.yoursite.com/url будет перенаправлен на yoursite.com/url.