Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная

Правильное выполнение Nginx redirect 301

Автор: admin, 28 марта, 2022
Система

По написанию конфигурационного файла Nginx с redirect 301 существует много рекомендаций. Как создать правильный редирект, который не плодит дубли, ухулшающие SEO.

Nginx redirect 301

Содержание

  • Что такое Nginx redirect 301
  • Nginx redirect 301 с www на без www и с http на https
  • Заключение

Что такое Nginx redirect 301

Nnginx 301 redirect является формой перенаправления HTTP. Это очень полезный способ правильного перенаправления адресов в браузере клиента. Можно использовать перенаправление HTTP, чтобы перенаправить один домен или адрес на другой домен или адрес. Существует несколько типов перенаправлений, каждый из которых имеет разное значение в клиентском браузере.

Владельцам веб-сайтов обычно необходимо делать это перенаправление при смене доменов или переупорядочении контента на своем веб-сайте. Такие перенаправления нужны, если ваш контент был постоянно перемещен на новое место, например, когда вы меняете доменные имена или серверы.

Nginx redirect 301 с www на без www и с http на https

Если вам нужно создать Nginx redirect, вы можете выбрать один из нескольких вариантов. Самый простой и быстрый способ выполнения перенаправления — использование оператора return. 

Для выполнения перенаправления по этому варианту следует поместить в свой конфигурационный файл Nginx следующий код:

return 301 https://example.com$request_uri;

Это перенаправление является постоянным (Redirect 301) и идеально подходит для постоянной миграции контента после смены домена. 

Фрагмент блока конфигурационного файла выглядит так:

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

...

Причина замены example.com на $host будет понятна из следующего фрагмента.

В центре сертификации Let’s Encrypt можно легко получить и установить SSL/TLS сертификат совершенно бесплатно. Это позволит использовать на веб-сайте шифрованный трафик HTTPS.  Получив сертификат следует правильно настроить редирект.

Фрагмент блока конфигурационного файла после этого будет выглядеть вот так:

...

if ($host = www.example.com) {
    return 301 https://example.com$request_uri;
}

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    
...

Заключение

Я проверил множество вариантов redirect 301 на сервере с установленными Nginx и php-fpm. Ряд предлагаемых конфигураций слишком усложнены. Лишние переадресации нецелесообразны, а некоторые из них приводят к циклическому перенаправлению. Другие же приводят к дублированию адреса, ухудшая SEO.

Представленный здесь вариант я считаю оптимальным и пользуюсь им достаточно давно.

Последние материалы

  • Утилита sensors
    4 hours ago
  • Сканер Rkhunter
    1 week ago
  • Программа resize2fs
    1 week 6 days ago
  • Аудиопроигрыватель QMMP
    2 weeks 4 days ago
  • Программа Timeshift
    3 weeks 3 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru