Редирект — это автоматическое перенаправление браузера с одного адреса на другой. Например, вы открываете ссылку http://artgorbunov.ru и автоматически оказываетесь на https://bureau.ru/

Редиректы используют, чтобы поддержать устаревшие или изменившиеся адреса. Скажем, на сайте бюро страница с информацией о компании жила по адресу /bureau/. Мы перенесли её на адрес /about/ и настроили редирект, чтобы ссылки со старым адресом не сломались в поисковиках, закладках и истории сообщений:

https://bureau.ru/bureau/ → https://bureau.ru/about/

Также редиректы используют для сокращения ссылок:

https://bureau.ru/tiktok/ → https://bureau.ru/soviet/selected/andrey-tereschenko/sovety-prodolzheniya-tiktokov/

Или для динамических ссылок, которые меняются в зависимости от времени, клиента и других условий. Скажем, в письмах о Школе бюро нужна ссылка на последний открытый набор. Если использовать ссылку на текущий набор, когда откроется новый набор, ссылка в письме «протухнет». Чтобы обойти это, сделали «виртуальную» ссылку с редиректом на последний открытый набор:

https://bureau.ru/school/designers/enroll/ → https://bureau.ru/school/designers/20/

Через полгода:
https://bureau.ru/school/designers/enroll/ → https://bureau.ru/school/designers/21/

Условия могут быть сложнее, а редирект — частью решения. Например, ссылка на мою Бюросферу — /burosfera/me. Если пользователь не залогинен, страница показывает форму с приглашением войти в Бюросферу. Когда по ссылке переходит залогиненный в Бюросферу пользователь, он получает редирект на свою личную страницу:

https://bureau.ru/burosfera/me/ → https://bureau.ru/burosfera/vasiliy-polovnev/

И конечно, редиректы используют для правильной индексации сайта. Для поисковиков http://bureau.ru, https://bureau.ru, http://www.bureau.ru и https://www.bureau.ru — это четыре разных сайта, которые стоит индексировать отдельно. Поэтому настраивают редиректы на основной адрес:

http://bureau.ru → https://bureau.ru
http://www.bureau.ru → https://bureau.ru
https://www.bureau.ru → https://bureau.ru

Чаще всего разработчики называют «редиректом» временный редирект, а постоянный редирект называют 301‑м или перманентным редиректом

Редиректы бывают временными и постоянными. Для клиента разницы нет, он всё равно окажется по новому адресу, но есть разница для поисковиков. Если редирект временный, в поисковой выдаче останется старый адрес. Если редирект постоянный, в выдаче появится новый адрес, старый исчезнет, а поисковик будет считать новую страницу канонической.

Чаще всего разработчики называют «редиректом» временный редирект, а постоянный редирект называют 301‑м или перманентным редиректом

Редиректы бывают серверными и клиентскими. В первом случае браузер получит новый адрес напрямую от сервера, кода на бэкенде. Во втором случае браузер сначала загрузит страницу с кодом, найдёт в ней команду перенаправления и затем перейдёт по новому адресу. Поэтому серверные редиректы быстрее.

С серверными редиректами вам может помочь разработчик или девопс. Для клиентских достаточно метатега в шапке старой страницы:

<!doctype html>
<html>
  <head>
    <meta http-equiv="refresh" content="0; url=https://bar.ru/">
    <!-- ... -->
  </head>
</html>

Обратите внимание на 0 в начале. Это задержка перед редиректом, заданная в секундах. Если это число достаточно мало, поисковики посчитают такой редирект постоянным.

Редиректы метатегами не сохраняют параметры изначального урла, поэтому при переадресации теряются утм‑метки:

https://foo.ru/?utm_source=vk.com → https://bar.ru/

Если без них не обойтись, можно сделать редирект Яваскриптом:

<!doctype html>
<html>
  <head>
    <script>
      const redirect = [
        'https://bar.ru/',
        location.search
      ].filter(part => part).join('')
      
      window.location.replace(redirect)
    </script>
  </head>
</html>

См. рекомендации Гугля и Яндекса

Это крайняя мера, когда нельзя сделать серверный или метатеговый редирект. Поисковики считают такие редиректы постоянными, плюс могут и вовсе не проиндексировать страницу — поисковому роботу нужно загрузить страницу в браузер, выполнить Яваскрипт и поймать редирект.

См. рекомендации Гугля и Яндекса

P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.

Веб‑разработка
Отправить
Поделиться
Запинить

Рекомендуем другие советы