Налаштування перенаправлень за допомогою Nginx на VPS

При управлінні веб-сайтом або додатком на вашому VPS перенаправлення мають важливе значення для контролю потоків трафіку між URL-адресами. Незалежно від того, чи ви переходите на HTTPS, перенаправляєте старий домен або очищаєте непрацюючі посилання, Nginx дозволяє легко і ефективно керувати перенаправленнями на рівні веб-сервера.

У цьому посібнику ми розглянемо, як налаштувати різні типи перенаправлень в Nginx, зокрема:

  • Постійні перенаправлення (301)

  • Тимчасові перенаправлення (302)

  • HTTP на HTTPS

  • Non-www на www (і навпаки)

  • Перезапис за певним шляхом

Необхідні умови

  • VPS з встановленим Nginx

  • Root або sudo доступ

  • Конфігураційний файл вашого сайту (зазвичай в /etc/nginx/sites-available/ або /etc/nginx/conf.d/)

1. Постійний редирект (301)

Використовуйте його, коли URL-адреса або домен змінилися назавжди.

приклад: Перенаправлення зі старого домену на новий

server {
listen 80;
server_name olddomain.com www.olddomain.com;
return 301 https://newdomain.com$request_uri;
}

порада: Завжди перенаправляйте на HTTPS, коли це можливо.

2. Тимчасова переадресація (302)

Використовуйте цей параметр для тимчасового пере направлення (наприклад, під час технічного обслуговування).

server {
listen 80;
server_name olddomain.com www.olddomain.com;
return 301 https://newdomain.com$request_uri;
}

3. Перенаправлення HTTP на HTTPS

Це настійно рекомендується для SEO та безпеки.

server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}

Потім налаштуйте блок вашого HTTPS-сервера окремо:

server {
listen 443 ssl;
server_name example.com;
# SSL config here
}

4. Перенаправлення www на не-www (або навпаки)

Виберіть один з варіантів для узгодженості та SEO.

Від www до не www:

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

Або з non-www на www:

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

5. Перенаправлення на певний шлях

Приклад: Переспрямувати /blog на /articles:

location = /blog {
return 301 /articles;
}

Або з повною URL-адресою:

location = /blog {
return 301 https://example.com/articles;
}

Де розмістити ці директиви

Всі перераховані вище директиви слід розмістити у відповідному серверному блоці в конфігураційному файлі вашого сайту:

/etc/nginx/sites-available/example.com

Потім прив’яжіть його до доступних сайтів, якщо потрібно:

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Після оновлення конфігурацій

Завжди тестуйте конфігурацію Nginx перед перезавантаженням:

sudo nginx -t

Якщо помилок немає:

sudo systemctl перезавантажити nginx

Бонус: Перенаправлення всіх помилок 404 на головну сторінку

error_page 404 =301 /;

Помістіть це всередині блоку вашого сервера, щоб коректно обробляти непрацюючі посилання.

Nginx – це не просто високопродуктивний веб-сервер, це також потужний інструмент для управління трафіком і користувацьким досвідом за допомогою інтелектуальних перенаправлень. За допомогою всього декількох рядків конфігурації ви можете впровадити HTTPS, спрямовувати користувачів на правильні URL-адреси та оптимізувати свій сайт як для SEO, так і для безпеки.