Как настроить редирект самостоятельно

В статье:

  • Зачем нужен 301 редирект

  • Как настроить 301 редирект

  • Создать код редиректа автоматически

  • Зачем нужен 301 редирект

    Редирект 301 — это код состояния, который означает, что ресурс переместили на новый URL навсегда. Его считают постоянным, поисковику важен только конечный URL. В отличие, к примеру, от 302 редиректа, когда робот периодически возвращается к проверке страницы-донора.

    При 301 редиректе ссылочный профиль и авторитетность с неактуальной страницы переносится на новую.

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

    Как настроить 301 редирект

    Джон Мюллер предупреждает, что Google может не проиндексировать конечную страницу, если не соблюсти все правила. Нужно использовать канонический тег, внутренние ссылки и при необходимости тег hreflang для конечной страницы, а не той, с которой вы перенаправляете пользователя. Иначе Google получит неправильные сигналы и может не проиндексировать конечную страницу.

    Настроить переадресацию можно через панель управления вашим хостингом или вручную средствами HTML, PHP, JavaScript.

    У вас кириллический домен?
    В шаблонах мы использовали «http://site.ru» для примера. Если у вас кириллический домен «сайт.рф», «сайт.рус» или другой, его нельзя использовать в таком формате. Переведите запись домена в формат Punycode с помощью любого конвертера, а потом уже вставляйте в код.

    В настройках конкретного хостинга обычно подробно описано, как сделать редирект через панель управления. Для разных CMS есть специальные плагины для редиректов. Разберем способы для настройки вручную на примере редиректа на сайт с www или без него.

    Редирект для Nginx

    Для серверов под Nginx нужно использовать файл nginx.config, добавьте код в секцию server. Если вы настроили виртуальные хосты, для каждого хоста нужно редактировать файлы отдельно.

    С домена с www на домен без www

    server {#…
    if($host~ * www.(.*)) {
    set $host_without_www $1;
    rewrite ^ (.*) $ http: //$host_without_www$1 permanent;
    }#…
    }

    С домена без www на домен с www

    server {#…
    if($host~ * ^ [ ^ .] + .[ ^ .] + $) {
    rewrite ^ (.*) $ $scheme: //www.$host$1 permanent;
    }#…
    }

    После изменения nginx.config перезапустите nginx с помощью команды «service nginx restart». Проверить, все ли корректно заполнено, можно через команду «nginx -t».

    Редирект для Apache

    Если вы используете Apache, вам нужен файл .htaccess. Для доступа есть несколько вариантов:

    • Используйте FTP и включите отображение скрытых файлов. Найдите .htaccess в каталоге public_html в папке с названием домена.
    • Откройте панель управления хостингом, включите отображение скрытых файлов и найдите его через Диспетчер файлов.

    Скачайте .htaccess, добавьте код редиректа и загрузите файл заново. Если файла .htaccess нет, его нужно создать.

    На домен без www

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
    RewriteRule ^(.*)$ <a href=»https://site.ru/https://site.ru/$1″ class=»redactor-autoparser-object»>https://site.ru/https://site.ru/$1</a> [R=301,L]

    На домен с www

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^site.ru
    RewriteRule (.*) <a href=»http://www.site.ru/http://www.site.ru/$1″ class=»redactor-autoparser-object»>http://www.site.ru/http://www.site.ru/$1</a> [R=301,L]

    Редирект через PHP

    Действует на уровне сервера. Лучше использовать другой способ, потому что этот работает медленно. Через PHP перенаправление настраивают для сайтов, где редирект нужен на многих, но не на всех страницах.

    Файл index.php расположен в корневой папке. Скачайте его и добавьте код или отредактируйте прямо в диспетчере файлов в панели управления хостингом.

    На домен без www

    <!—?php
    header(«Location: http://site.ru/», true, 301);
    exit();
    ?—>

    На домен с www

    <!—?php
    header(«Location: http://www.site.ru/», true, 301);
    exit();
    ?—>

    Редирект через HTML

    Редирект через HTML-код медленнее, он работает на стороне браузера. Код нужно добавить между тегами и страницы, с которой нужно перенаправить. В параметре content=»» указывают задержку по времени.

    На домен без www

    <meta http-equiv=»refresh» content=»0; url=http://site.ru/»>

    На домен с www

    <meta http-equiv=»refresh» content=»0; url=http://www.site.ru/»>

    Редирект через JavaScript

    Редирект настраивают и с помощью JavaScript, он работает на стороне браузера, как и HTML. Это медленный способ и не сработает, если у пользователя в браузере отключен JavaScript. Его обычно настраивают для редиректов с задержкой, если такое требуется.

    Код для редиректа нужно добавить между и в код первой исходной страницы.

    На домен без www

    <script type=»text/javascript»>
    window.location.replace(«http://site.ru/»);
    </script>

    Для задержки:

    <script type=»text/javascript»>
    setTimeout(function() {
    location = «http://site.ru»;
    }, 5000);</script>

    На домен с www

    <pre><script>
    window.location.replace(«http://www.site.ru/»);
    </script></pre>

    Через cPanel

    cPanel — это платная панель управления веб-хостингом. В ней тоже можно настроить редиректы, причем не используя вводы кодов. Во вкладке «Домены» есть раздел «Перенаправления», там нужно настроить редирект.

    На домен без www

  • В списке выберите нужный домен.
  • В поле «Перенаправляет на» пропишите его с префиксом http://.
  • Поставьте отметку у «Перенаправлять только с www»
  • На домен с www

  • В списке выберите нужный домен.
  • В поле «Перенаправляет на» пропишите его с префиксом http://www.
  • Поставьте отметку у «Не перенаправлять www»
  • Создать код редиректа автоматически

    Сгенерировать код для настройки редиректа можно и с помощью инструментов.

    К примеру, с этим справится генератор 301 Redirect Code от RapidTables. Есть возможность выбора: сформировать код для вставки в .htaccess, а также PHP, HTML, JavaScript и другой. Комментарии со ссылкой на инструмент можно удалить.

    Генератор RapidTables

    301 Redirect Generator от Webworkshop предлагает сформировать код для редиректа со страницы на страницу, с домена на домен и с директории на директорию. Отдельно есть окно для перехода на домен с www. Для редиректов на домен есть только код для Apache .htaccess, для страниц есть возможность выбора.

    Генератор от Webworkshop

    Batch RewriteRule Generator позволяет настраивать редиректы для доменов или страниц пакетно: введите список URL-адресов с табуляцией или пробелами, можно скопировать пары из таблицы Excel, и генератор выдаст нужный код.

    Batch RewriteRule Generator

    Почитать по теме:

    Как склеить домены для Яндекса и Google: руководство по переносу сайта

    Пишите свои замечания и отзывы о материале в комментариях к посту! 

    Источник: pr-cy.ru

    Ссылка на основную публикацию