Перенаправление с www на без www в NGINX: несколько методов с примерами кода

Перенаправление поддомена www на версию веб-сайта без www — распространенная практика для улучшения SEO и обеспечения единообразного взаимодействия с пользователем. В этом сообщении блога мы рассмотрим несколько методов достижения такого перенаправления с использованием NGINX, популярного программного обеспечения веб-сервера.

Метод 1: использование серверных блоков
Один из способов перенаправления www на не-www в NGINX — использование серверных блоков. Вот пример конфигурации:

server {
    listen 80;
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}
server {
    listen 80;
    server_name example.com;
    # Rest of the configuration
}

В этой конфигурации первый блок сервера захватывает запросы с поддоменом «www» и перенаправляет их на версию без www, используя перенаправление 301 (постоянное перенаправление). Второй блок сервера обрабатывает запросы для версии домена без www.

Метод 2: использование правил перезаписи
Другой подход — использовать правила перезаписи для выполнения перенаправления. Вот пример конфигурации:

server {
    listen 80;
    server_name example.com;
    rewrite ^(.*)$ http://www.example.com$1 permanent;
}
server {
    listen 80;
    server_name www.example.com;
    # Rest of the configuration
}

В этой конфигурации первый блок сервера захватывает запросы к версии без www и перенаправляет их на версию с www с помощью перенаправления 301. Второй блок сервера обрабатывает запросы с субдомена www.

Метод 3: использование директивы карты
Директива карты позволяет сопоставить одно значение с другим. Мы можем использовать его для перенаправления www на не-www. Вот пример конфигурации:

map $http_host $new_host {
    default $http_host;
    www.example.com example.com;
}
server {
    listen 80;
    server_name www.example.com example.com;
    return 301 $scheme://$new_host$request_uri;
}

В этой конфигурации директива карты сопоставляет хост «www.example.com» с «example.com». Затем блок сервера захватывает запросы с версией www или без www и выполняет перенаправление.

Перенаправление поддомена www на версию веб-сайта без www имеет решающее значение для SEO и единообразия. В этой статье мы рассмотрели три метода достижения такого перенаправления с помощью NGINX: использование серверных блоков, использование правил перезаписи и использование директивы карты. Выберите метод, который соответствует вашим требованиям, и внедрите его в свою конфигурацию NGINX, чтобы обеспечить удобство работы с пользователем и оптимизировать SEO вашего сайта.