301 редирект nginx: Как настраивать редиректы на веб-сервере NGINX 🔄

Как правильно выполнить Nginx redirect 301 для SEO

Опубликовано admin — пн, 03/28/2022 — 13:58

Система

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

Содержание

  • Что такое 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.

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

Поделиться с друзьями

Примеры 301 редиректов NGINX

Очень часто появляется необходимость в использовании редиректов. К наиболее распространенным ситуациям, в которых задействуется 301 Redirect можно отнести:  

  • случаи, когда страница сменила адрес, а пользователи осуществляют запрос на старую;
  • исключение дублей страниц;
  • переезд с одного сайта на другой со сменой доменного имени. 

    Самым верным решением в подобных ситуациях будет реализация редиректа во фронтэнде, посредством NGINX. В идеале рекомендуется отказаться от Appache и использования .htaccess в принципе, если есть желание существенно ускорить работу сайта в целом.

    Однако в таком случае, при переходе на NGINX, мы сразу же сталкиваемся с проблемой реализации ранее создававшихся . http://www.site.com$requеst_uri ? pеrmanent;

    }

    sеrver {

    listen 80;

    sеrver_nаme www.sitе.com;

    . . .

    Редирект со включенным режимом ЧПУ

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

    Этот способ перенаправления можно отнести к разряду непростых, поскольку здесь условие содержится в переменных запроса GET. Не совсем понятно, каким образом создавать Location по такому запросу

    /dir/?ELЕMENT_ID=777 на /dir/777/.

    Есть достаточно эффективный, хотя и не самый удобный, вариант, поскольку присутствие условия «if» в конфигурации NGINX считается не самым удачным решением априори. /cat/page/$ http://www.example.net/page2/ permanent;

    Перенаправление 301 с передачей переменной /оbl/777/ на /оbl.php?obl_idx=777 по условию

    lоcation /obl/ { rеwrite /оbl\/(.*)$ /оbl.php?obl_idx=$1; }

    Как настроить редирект Nginx на HTTPS, www/non-www и многое другое!

    ВПС

    20 декабря 2022 г.

    Эдвард С.

    4 мин Чтение

    Nginx (произносится как engine-x) — это мощный высокопроизводительный веб-сервер HTTP с открытым исходным кодом. Он может работать как обратный прокси-сервер или прокси-сервер POP3/IMAP. Это третий по популярности веб-сервер, хорошо известный своей повышенной производительностью, простотой использования и настройки, стабильностью и минимальным использованием ресурсов. Вот почему в этом руководстве мы покажем вам, как использовать Nginx для перенаправления трафика различными способами.

    По данным Datanyze, Nginx занимает 32% рынка веб-серверов. Он поддерживает множество известных веб-сайтов, таких как Github, Netflix, Cloudflare, Hulu, Airbnb, Hulu, WordPress и многие другие.

    Перенаправление в Nginx

    Возможность переадресации URL-адреса веб-сайта на другой адрес или точку на основе ваших критериев является важной функцией веб-сервера Nginx. Редирект Nginx прост и удобен в настройке. Часто пользователи выбирают для перенаправления страницу с хорошим SEO-рейтингом. Например, при переходе с CMS на другую платформу. Это полностью изменит состав вашего URL. Таким образом, чтобы сохранить текущую страницу с хорошей позицией в поисковой выдаче, вы можете перенаправить старый URL-адрес на новую страницу.

    В этом руководстве мы покажем вам, как создать два вида перенаправления Nginx: постоянное и временное. Не забудьте установить Nginx на свой VPS.

    Временное и постоянное перенаправление Nginx Объяснение

    Временные перенаправления полезны, если местоположение страницы необходимо временно изменить с одного места на другое. Код ответа перенаправления 302 используется для обозначения временного перемещения страницы.

    Если проводится техническое обслуживание веб-сайта, используются временные перенаправления для уведомления пользователей о том, что веб-сайт недоступен. Другой пример — когда вы делаете временную переадресацию незавершенной страницы; вы связываете эту страницу с другой точкой или главной страницей:

    Посетитель -> Страница веб-сайта -> Веб-сайт находится на обслуживании

    С другой стороны, постоянное перенаправление Nginx информирует веб-браузер о том, что он должен постоянно связывать старую страницу или домен с новым местоположением или доменом. Чтобы отобразить это изменение, код ответа перенаправления 301 используется для обозначения постоянного перемещения страницы. Эти виды перенаправлений полезны, когда пользователь хочет изменить доменное имя и больше не хочет, чтобы браузер обращался к нему.

    Например, если вы хотите изменить домен своего веб-сайта или создать новую страницу для старой:

    Посетитель–> Нажмите www.devisers. in/home -> Перенаправление на www. разработчики. in/home1

    Перенаправление страниц в Nginx

    Помните, что сначала вам нужно получить доступ к вашему VPS через SSH. Если у вас возникли проблемы, ознакомьтесь с нашим руководством по PuTTY.

    В Nginx большинство перенаправлений можно выполнить с помощью встроенной функции перезаписи. Это функция по умолчанию, которая доступна при чистой установке Nginx и может формировать оба типа перенаправления Nginx — то есть постоянное и временное. В простой форме он принимает как минимум два случая: старый URL-адрес и новый URL-адрес.

    Просто и легко перенаправить страницы во временное или постоянное место на веб-сервере Nginx. Все, что вам нужно сделать, это открыть файл /etc/ nginx /sites-enabled/default и вставить нужные перенаправления.

    Nginx Перенаправление домена

    Для перенаправления одного домена на другой используйте следующую команду в терминале:

     сервер {
        слушать 80;
        слушать 443 ssl;
        имя_сервера devisers. in www.devisers.in;
        вернуть 301 $scheme://www.devisers.com$request_uri;
    } 

    Здесь мы используем два домена. Тот, который мы хотим перенаправить — www.devisers.in, а новый — www.devisers.com.

    Перенаправление Nginx с HTTP на HTTPS (SSL)

    HTTP и HTTPS используют разные порты — порт HTTP 80 и порт HTTPS 443. Использование HTTPS гораздо полезнее, поскольку оно защищает вас от атак MITM, которые могут перехватить ваш сеанс. Помните, что для работы этого метода у вас должен быть уже настроен SSL. Итак, чтобы защитить всю информацию, передаваемую между вами и вашими посетителями, полезно перенаправить все запросы, поступающие с HTTP на HTTPS. Для этого мы можем добавить эту модификацию в этот же файл:

     сервер {
        слушать 80;
        имя_сервера www.domain.tld;
        вернуть 301 https://www.domain.tld$request_uri;
    } 

    Теперь весь трафик для HTTP-сервера по умолчанию перенаправляется на HTTPS.

    Nginx перенаправляет определенные сайты

    Это важно, если вы используете различные сайты или приложения и хотите перенаправить только один сайт. Выполните следующие действия:

     сервер {
    слушать 80;
    имя_сервера devisers.in;
    вернуть 301 https://devisers.in$request_uri;
    } 

    Перенаправление с www на без www

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

     server {
        слушать 80;
        слушать 443 ssl;
        имя_сервера www.devisers.in;
        вернуть 301 $scheme://devisers.in$request_uri;
    } 

    Важно! Это постоянное перенаправление или «301 перенаправление».

    Перезапустите веб-сервер Nginx, чтобы изменения вступили в силу, с помощью команды:

     sudo systemctl restart Nginx 

    Если вы хотите перенаправить с не-www на www, просто замените URL-адрес веб-сайта, указанный в приведенной выше команде. Замените www.devisers.in на devisers. in и наоборот.

    Заключение

    Nginx — один из самых мощных и простых в использовании веб-серверов, который позволяет делать временные и постоянные перенаправления, как описано выше.

    Теперь вы знаете, как создавать редирект Nginx с HTTP на HTTPS, с www или без www или наоборот. Убедитесь, что вы используете правильные типы перенаправления, так как неправильные перенаправления повлияют на ваш поисковый рейтинг. С помощью точных перенаправлений вы можете использовать свое текущее присутствие в Интернете, изменяя структуру сайта по мере необходимости.

    Мы надеемся, что это руководство поможет вам! Увидимся в следующем.

    Эдвард — редактор контента с многолетним опытом написания статей в области ИТ, маркетинга и системного администрирования Linux. Его цель — побудить читателей создать впечатляющее присутствие в Интернете. Еще он очень любит собак, гитары и все, что связано с космосом.

    Подробнее от Эдварда С.

    Как настроить NGINX 301 Redirect

    NGINX — очень мощный инструмент веб-сервера для балансировки потребностей программного обеспечения или веб-приложения. Он используется почти 42,2% всех известных веб-сайтов и известных веб-серверов, чуть уступая Apache, который используется 43,3% всех веб-сайтов по состоянию на 2019 год.. Излишне говорить, что это популярное и удобное программное обеспечение с открытым исходным кодом.

    NGINX 301 Перенаправления — это очень полезный способ правильного перенаправления адресов в браузере. Владельцам веб-сайтов обычно необходимо делать это при смене доменов или переупорядочении контента на своем веб-сайте.

    Так как именно выполняется это перенаправление? Давайте углубимся в то, как можно выполнить перенаправление NGINX 301 шаг за шагом.

    Связанный: Полное руководство для начинающих по отображению на первой странице Google

    Что такое перенаправление NGINX 301?

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

    NGINX 301 Redirect — это форма перенаправления HTTP. Можно использовать перенаправление HTTP, чтобы перенаправить один домен или адрес на другой домен или адрес. Существует несколько типов перенаправлений, каждый из которых имеет разное значение в клиентском браузере. Двумя наиболее используемыми и известными типами перенаправления являются «временные» перенаправления и «постоянные» перенаправления.

    Постоянные перенаправления, такие как NGINX 301 Redirect, просто заставляют браузер полностью забыть старый адрес и предотвращают дальнейшие попытки доступа к этому адресу. Эти перенаправления очень полезны, если ваш контент был постоянно перемещен в новое место, например, когда вы меняете доменные имена или серверы.

    Теперь, когда мы знаем, что такое NGINX 301 Redirect, давайте рассмотрим различные способы его настройки.

    Как настроить перенаправление NGINX 301

    Если вам нужно настроить перенаправление NGINX, вы можете выбрать один из нескольких вариантов.

    Самый простой и быстрый способ выполнить перенаправление — использовать инструкцию «return». Чтобы выполнить это утверждение, поместите следующий код в свой блок server :

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

    Это перенаправление является постоянным и идеально подходит для постоянной миграции контента после смены домена. Полный образец звука блока сервера выглядит примерно так:

    server {    listen 80; слушать [::]:80; имя хоста sample.com www.sample.com; вернуть 301 https://sample.com$request_uri;} 9/foo/(bar)/(.*)$ $scheme://$server_name/$1/$2 Permanent;}

    Присоединяйтесь к более чем 1000 других компаний и проанализируйте свой сайт с помощью Twiz

    Довольно просто, правда? Теперь, если у вас есть группа адресов или регулярных выражений, которые нужно перенаправлять по отдельности и по-разному, вы можете использовать карты. Карты могут быть определены в отдельных файлах, и их определения должны быть вне блока сервера. Это будет выглядеть примерно так:

    include redirect-map.conf;server {    […]    if ( $redirect_uri ) {        return 301 $redirect_uri; }}

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

    map $request_uri $redirect_uri {    /about.html          /about-us; /partners.html      /наши партнеры; /services.html       /our-services;}

    Стоит отметить, что регулярные выражения чувствительны к регистру символов. Сопоставление с учетом регистра должно начинаться с ~ , а сопоставление без учета регистра должно начинаться с ~*. Обратите внимание, что $redirect_uri можно назвать как угодно, но имя переменной в карте должно совпадать с именем блока сервера. Этот пример кода показывает это:

    карта $request_uri $redirect_uri {    /about.html          /about-us; /partners. html      /наши партнеры; /services.html       /наши-услуги; # Соответствует любому URL-адресу, который заканчивается на services.html или services.htm    ~services\.html?$    /our-services; # нечувствительная к регистру версия приведенного выше    ~*services\.html?$   /our-services; # Именованный захват, отображающий    # например. service-1234.html в /services/item-1234/overview    ~service-(?\d+)\.html   /services/item-$sku/overview;}

    Есть также дополнительные переменные, которые вы можете учитывать, которые уже предопределены в NGINX для использования в конфигурациях. К ним относятся:

    • $server_name. Это первое имя из объявления имени хоста в конфигурации для блока сервера, который немедленно отвечает на запрос.
    • $request_uri. Это полный унифицированный идентификатор ресурса (или URI) исходного запроса, который включает аргументы.
    • $request_filename. Это путь к файлу для текущего запроса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *