Опытный SEO-специалист должен знать в каких случаях и для чего используется 302-редирект, и самое главное, чем он отличается от других типов переадресации. В этой статье разберем все нюансы этого вопроса, а также научимся настраивать данный тип перенаправления разными способами.
Как работает 302-редирект?
302-редирект работает по принципу перенаправления посетителей или краулеров поисковых систем с текущего URL-адреса на другой. Другими словами, в момент загрузки страницы, от сервера приходит ответ о переадресации с указанием нового URL-адреса, будь то 301 или 302-редиректы.
Для чего используется 302-редирект?
Главная цель 302-редиректа – создать временную переадресацию текущей страницы на новый адрес. Понадобиться подобное может в следующих случаях:
- На странице ведется техническая работа и посещение ее пользователями или ботами нежелательны. К примеру, документ обновляется поэтапно, в течении нескольких дней.
- Временное перенаправление трафика с одного домена на другой.
- Документ часто подвергается корректировкам и требуется показывать последнюю его версию. К примеру, при организации страниц акций в интернет-магазине, когда появляется временное предложение, а страницу предыдущего (как правило, уже проиндексированную и имеющую определенный траст) удалять не требуется.
- Техническое обслуживание сайта. В этом случае, посетителю выводится экран-заглушка, при этом остальные страницы не исключаются из поискового индекса.
- Аналогичным образом, хостинг-провайдеры могут временно закрывать определенные страницы на клиентских сайтах.
Нет времени разбираться?
SEO-продвижение под ключ
Проанализируем конкурентов, подберем запросы с низкой конкуренцией, проведем поисковую оптимизацию сайта, организуем внешнюю ссылочную массу, проработаем карточки компании на онлайн картах, проведем базовую UX-аналитику сайта. Над каждым проектом работает от 6 до 10 специалистов. Собственные разработчики для доработки сайта при необходимости. От вас — сайт, от нас — позиции в Яндекс/Google и трафик.
Ваш сайт:
Как отмечалось выше, 302-редирект подходит для страниц, адрес которых поменялся временно (как правило, на срок не более 7-10 суток). Это говорит о том, что URL старой страницы остается в индексе поисковых систем. Поэтому, если документ «переехал» на постоянной основе, следует использовать исключительно 301-редирект, либо могут возникнуть сложности с SEO-продвижением.
Некоторые интернет-магазины настраивают 302-редирект с товаров, которых нет в наличии. Не рекомендуется этого делать, лучше предложить потенциальному покупателю аналогичные товары, оставив при этом его на исходном URL-адресе.
Также не следует использовать 302-редирект при смене структуры сайта или при установке SSL-сертификата. Это действительно может создать проблему, т.к. со старого ресурса не будет передаваться весь накопленный траст, а старые страницы не будут исключены из индекса поисковых систем.
301 или 302-редиректы, в чем разница?
Главное отличие:
- 301-редирект – постоянное перенаправление на новую страницу.
- 302-редирект – временное перенаправление.
Что касается влияния на SEO, то тут тоже имеются существенные различия:
- В отличии от 301-редиректа, при 302 не передается ссылочный «вес» старой страницы на новый URL-адрес.
- При 301 перенаправлении, из поискового индекса удаляется адрес старой страницы и добавляется новый. При 302 – оба адреса находятся в индексе (если новая страница успела попасть в индекс, но в любом случае, старый адрес не исключается из него) и сохраняется «авторитет» исходной страницы.
- Если говорить про возможность склейки доменов, то 301 позволяет это сделать, а 302 – нет.
Советуем не настраивать 302-редирект на более чем 7-10 суток, иначе могут последовать санкции со стороны поисковых систем.
Способы настройки 302-редиректа
Настройка 302-редиректа схожа с настройкой других типов перенаправления – синтаксис и команды те же, отличается лишь код ответа сервера.
Привлекли 35.000.000 людей на 185 сайтов
Мы точно знаем, как увеличить онлайн–продажи
Применяем лучшие практики digital–продвижения как из вашей тематики, так и из смежных областей бизнеса. Именно это сделает вас на голову выше конкурентов и принесёт лиды и продажи.
Ваш сайт:
Прописываем 302-редирект в htaccess
Данный вид настройки доступен только на серверах Apache. Находим в корне сайта файл .htaccess и вносим в него следующие данные:
RewriteEngine on Redirect 302 /old-url https://site.ru/new-url
Как видно из синтаксиса, указывается код ответа (302), далее URL-адрес исходной страницы и после – новой с указанием протокола соединения и доменного имени.
Этот пример подходит, если требуется настроить переадресацию с одной страницы на другую. Если же необходимо создать перенаправления внутри всего ресурса, то следует использовать более сложный вариант:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru [NC]
RewriteRule ^(.*)$ https://site /$1 [R=302,L]
Для закрытия от пользователей и поисковых ботов определенного документа, используется следующий код:
RewriteEngine on
RewriteCond %{REQUEST_URI} !/cat.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /cat.html [R=302, L]
С помощью php
Если по каким-то причинам предыдущий метод не подходит, то настроить 302-редирект можно с помощью php-кода. В этом случае перенаправление происходит на самом сервере, а не в браузере пользователя.
Настройка редиректа производится через установку специального заголовка Location и функции header(), которая позволяет отправлять HTTP-заголовок в браузер. Главное замечание – данная функция на странице должна быть вызвана раньше других, и располагаться вначале документа (даже пробел перед этой конструкцией приведет к ее неработоспособности). Если этим правилом пренебречь, то редирект не сработает.
Преимущество данного метода настройки переадресации заключается в том, что синтаксис довольно-таки прост:
<?php
header('Location: https://site.ru/primer.html');
exit;
?>
Чтобы настроить сам редирект, данный фрагмент кода необходимо вставить на страницу (в ее php код), с которой будет осуществляться перенаправление в самое начало документа. В примере кода требуется лишь заменить URL-адрес конечной страницы, на которую будет происходить переадресация с указанием полного пути.
Если редиректов планируется много, то рекомендуется создать файл, содержащий все необходимые правила.
С помощью JavaScript
Это менее распространенный способ настройки 302-редиректа по той причине, что в случае, если JavaScript в браузере у посетителя отключен (а так бывает в большинстве случаев), то перенаправление не сработает.
Также, наблюдается небольшая задержка, вызванная тем, что первоначально загружается исходная HTML-страница в виде белого экрана, и только после срабатывает редирект.
Для реализации этого способа, необходимо оформить нижеприведенный код в тег <body> или <head> страницы, с которой требуется сделать перенаправление:
<script type=”text/JavaScript”> document.location = ‘https://site.ru/primer.html’; </script>
Как исправить 302 редирект на 301?
Чтобы не было проблем, необходимо отличать эти два вида редиректов, понимать, в каких случаях применяется тот или иной. Иногда случаются ситуации, что некоторые CMS или их плагины, вместо 301-редиректа, проставляют 302. Это может создать ряд трудностей для владельца ресурса, поэтому важно отслеживать этот момент.
Способы исправления 302-редиректа на 301 отличаются в зависимости от того, каким методом реализована переадресация. К примеру, если это было сделано в файле .htaccess, то достаточно просто изменить код ответа сервера с 302 на 301:
RewriteEngine on Redirect 301 /old-url https://site.ru/new-url
Если говорить про php-способ, то в примере выше был использован заголовок Location, по умолчанию он передает редирект 302. Если требуется прописать 301, то используем следующий код (предварительно удалив от 302-редиректа):
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://site.ru/primer.html");
exit();
?>
Как проверить что все настроено верно?
Проверить код ответа сервера и работоспособность настроенных редиректов можно несколькими способами.
С помощью Яндекс.Вебмастер
Панель Вебмастера позволяет проверять коды ответов сервера. Чтобы попасть в этот инструмент, переходим: «Инструменты – Проверка ответов сервера». Вбиваем нужный URL-адрес и получаем код ответа.
Проверка ответа сервера с помощью Яндекс.Вебмастера
Как видно на примере, у страницы корректно сработал 302-редирект.
Проверка вручную
Если требуется проверить одну или несколько страниц, то можно воспользоваться ручным способом. Достаточно зайти на страницу, с которой должен быть осуществлен редирект, если все настроено корректно, то сработает перенаправление.
Единственный его недостаток – не получится понять какой тип редиректа сработал.
С помощью сервиса bertal.ru
Данный сервис позволяет получать информацию из HTTP-заголовков документов. Принцип работы с ним достаточно прост: копируем и вставляем в строку URL-адрес интересуемой страницы, нажимаем «Проверить» и получаем код ответа сервера.
Проверяем код ответа сервера с помощью сервиса bertal.ru
Screaming Frog SEO
Если на сайте настроено множество редиректов и их требуется найти, ручные способы для этого малопригодны. В этом случае, рекомендуется использовать специализированный софт, например, Screaming Frog SEO.
Первоначально, сайт необходимо просканировать, вбив его URL-адрес в программу и запустив краулер.
Получение данных через Screaming Frog SEO
Далее переходим к поиску страниц с 302-редиректом (или любым другим кодом ответа), настроив предварительно фильтр по соответствующему столбцу:
Настройка фильтра для поиска страниц с 302-редиректом
И получаем список интересующих документов.
Используя 302-редирект, необходимо быть предельно внимательным, если применять его бездумно, то можно лишь усложнить SEO-продвижение ресурса.
- Что такое 302 редирект?
- Отличие 302 от 301 редиректа
- Настраиваем 302 редирект в .htaccess
- 302 редирект с помощью php
- 302 редирект в SEO
К большому сожалению, многие SEO специалисты забывают (а некоторые даже и не слышали) о 302 редиректе. Есть те, кто считает данную переадресацию аналогом 301-ой, и те, кто уверен в ее бесполезности. Все они не правы. Сегодня мы расскажем, что такое 302 редирект, опишем его функцию и приведем примеры использования
302 redirect (Temporary redirect) — это временная переадресация, которая, обычно, создается на срок от 1-го до 10 дней. Наличие 302 редиректа означает, что запрашиваемый документ ненадолго перемещен на другой URL адрес.
Если для пользователя существенной разницы между 301-м и 302-м редиректом нету, то для поисковой системы она глобальна. С точки зрения SEO, 302 редирект сильно отличается от 301.
Отличие 302 от 301 редиректа
Принципиальное отличие 302 редиректа от 301 — постоянность.
302 редирект — временная переадресация.
301 редирект — постоянная переадресация.
Из этого следуют все нижеперечисленные различия и сходства.
| 302 редирект | 301 редирект | |
| Срок переадресации | Временный. От 1 до 7 дней* | Постоянный. Переадресация навсегда. |
| Передает «вес» страницы | Нет | Да |
| Страницы в поиске | Обе страницы в поиске | Только та, на которую настроен редирект |
| Возможность «склейки» доменов | Нет | Да |
| Поддерживается всеми основными поисковыми системами | Да | Да |
* Проставление 302 редиректа на период до 7 дней безопасно с точки зрения SEO. В этот период обе страницы будут находиться в поиске. Срок рассчитан на основе наших исследований.
Настраиваем 302 редирект в .htaccess
Создание 302 редиректа в файле .htaccess доступно только для пользователей веб-сервера Apache.
Самый простой вариант создания 302 редиректа в .htaccess умещается в 2 строки:
RewriteEngine on Redirect 302 /old-url https://dh-agency.ru/new-url
А вот уже пример более сложной переадресации, которая распространяется на весь сайт:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.dh-agency.ru [NC]
RewriteRule ^(.*)$ https://dh-agency.ru /$1 [R=302,L]
Как Вы уже догадались, процедура проставления 302-го редиректа очень схожа с проставлением 301-го. Необходимо лишь поменять код (R=301 на R=302).
Так как ранее мы уже описывали создание редиректа 301 в .htaccess, то подробно не будем касаться этой темы еще раз.
302 редирект с помощью php
Создание 302 редиректа возможно не только в файле .htaccess, но и посредством php кода. Для реализации используется функция header(), которая способна создавать заголовки страниц. То есть, мы можем сгенерировать необходимый нам заголовок страницы при помощи php кода.
Прописывать код необходимо в самом начале Вашего документа. В противном случае при вызове функции header() возникнет ошибка и переадресация не сработает.
Синтаксис не имеет сложных элементов, весь код помещается в одну строчку. Имея поверхностные знания в php, Вы без труда разберетесь в нем.
Сразу же стоит сказать, при использовании Location по умолчанию используется 302 редирект, поэтому прописывать код необходимости нет.
Полный синтаксис:
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
Теперь рассмотрим реальный пример. Представим, что нам необходимо переадресовать посетителя с главной страницы нашего сайта на раздел с акцией. Для этого, прописываем следующий код в самом начале главной страницы.
<?php
header('Location: http://dh-agency.ru/discounts.html');
exit;
?>
Вот и все, переадресация настроена. Функция header() позволяет реализовать не только 302-й, но и другие виды редиректов, в том числе 301-й, 307-й.
302 редирект в SEO
С точки зрения SEO 302 редирект просто находка. Ведь именно он позволяет временно переадресовать с одной страницы на другую, при этом сохраняя оба документа в поиске. «Вес» страницы в таком случае не передается, что для продвижения порой очень важно.
В отличие от 301 редиректа, 302-й помогает решать такие задачи, как:
1. Переадресация во время доработки страницы
Представим, что у нас имеется ресурс, основной источник посетителей которого — органическая выдача. Закрывать страницы на время доработки в таком случае проблематично, так как это может повлиять на позиции и видимость.
Одним из решений может стать 302 редирект. Простановка переадресации с редактируемой страницы на временную поможет оставить оба документа в поиске, при этом отправив пользователей на рабочий раздел.
После доработки страницы, редирект необходимо убрать.
2. Переадресация на временный раздел
Один из самых распространенных способов использования 302 редиректа — создание временной акции или распродажи. Что бы не портить главную страницу Интернет-магазина громоздкими баннерами и призывами, возможно сделать временную переадресацию на страницу полностью посвященную акции.
После проведения мероприятия редирект убирается, при этом видимость и позиции сайта сохраняются.
Важно!
Не стоит ставить 302 редирект на слишком длительное время. В противном случае поисковые системы будут считать его 301-м и исходная страница, то есть та, с которой идет редирект, просто пропадет из поиска. Об этом официально заявлял Google и это проверено на практике уже не одним web мастером.
Используйте 302 редирект грамотно и он позволит решить многие SEO задачи.
В статье рассказывается:
- Что такое 302 редирект
- В каких случаях необходим 302 редирект
- Когда не стоит использовать 302 редирект
- 301 и 302 редирект: в чем разница
- Так что лучше – 301 или 302 редирект
- Как настроить 302 редирект в .htaccess
- Настройка 302 редиректа с помощью PHP и JavaScript
- Как выявить 302 редирект на сайте
- Часто задаваемые вопросы про 302 редирект
Понимание, когда уместно использовать 301 и 302 редирект, входит в число обязательных знаний опытного веб-мастера. Зачастую области их применения сильно разнятся. На первый взгляд может показаться, что ошибка при их использовании не страшна, но нельзя забывать о SEO-оптимизации сайта, результаты которой могут оказаться очень далеки от ожидаемых.
Под 302 редиректом принято понимать переадресацию на некоторый период, а именно от одного до 10 дней. Такая операция свидетельствует о временном перемещении веб-страницы на другой адрес.
Временная переадресация имеет существенный недостаток – ссылочный вес страницы при этом не передается. В результате применения 302 редиректа внешние ссылки теряются, как и внутренний вес всего ресурса. Однако и польза Temporary для поисковиков и юзеров довольно ощутима.
Допустим, вы с нуля занимаетесь разработкой страницы акций, наполненной массой дополнительных функций. Процесс их внедрения займет не менее 3-4 дней с постоянным корректированием внешнего вида и исходного кода документа.
Если отказаться от использования переадресации, «сырая» страница в ходе доработки будет видна пользователям, а роботы станут выдавать ее в результатах поиска. 302 редирект делает возможным представление окончательного варианта страницы, полностью готового для просмотра и использования посетителями.
В каких случаях необходим 302 редирект
Он требуется в следующих случаях:
-
Когда на интернет-ресурсе проводятся технические работы.
-
Когда владелец сайта хочет представить пользователям другие материалы, не трогая прежний вариант страницы..
-
Когда хостинговая компания закрывает от посетителей запрещенный контент.
-
Когда есть необходимость трафик с определенного домена временно перенаправить на другой.
Когда не стоит использовать 302 редирект
Не стоит применять код статуса 302, если требуется передавать SEO-вес URL-адресу назначения.
Например, когда на постоянной основе:
-
перемещается домен;
-
перемещается документ;
-
протокол сайта изменяется;
-
структура сайта изменяется.
HTML redirect 302 не рекомендуется использовать, когда метод исходного запроса требуется применить для запроса к URL-адресу назначения. Например, перемещение на определенный период URL-адреса обработчика формы, которая использует метод POST.
301 и 302 редирект: в чем разница
Разберемся, в чем отличие 301 от 302 редиректа.
-
«Пузомерки» и ссылочный вес при использовании 302 редиректа новому URL не передаются.
С точки зрения передачи трафика 301 и 302 редиректы ведут себя одинаково: если пользователь кликает на старую ссылку, он перенаправляется на новую страницу.
-
Разница между 301 и 302 редиректами заключается в том, как исходная страница воспринимается ботами поисковиков.
В случае 301 они понимают, что старая страница больше не действует, и не перенаправляют на нее пользователей. 302 редирект, напротив, говорит им о необходимости продолжать индексирование контента страницы столько, сколько требуется.
-
В зависимости от того, выбран 301 или 302 редирект, в поисковой выдаче не будет отображаться старый вариант странички (301) или будут присутствовать оба (302).
-
Необходимо отдавать себе отчет, чем чревато попадание под фильтры поисковых систем в одном и во втором случае.
За переадресацию с кодом 301 наказание может последовать, только если будут выявлены умышленные действия, связанные со склеиванием показателей и веса разных сайтов. Что касается 302 редиректа, он нередко распознается в качестве элемента черного SEO (одного из вариантов клоакинга).
Кейс: VT-metall
Узнай как мы снизили стоимость привлечения заявки в 13 раз для металлообрабатывающей компании в Москве
Узнать как
-
При настройке понять, чем отличается 301 редирект от 302, невозможно, поскольку в обоих случаях применяются одинаковые команды.
Так что лучше – 301 или 302 редирект?
В качестве примера оптимального использования 302 редиректа можно привести страничку интернет-магазина с предложениями по акции. В этом случае контент основной страницы остается нетронутым и продвигается в поисковиках, а происходит перенаправление на списки актуальных акций, при желании изменяемые ежедневно.
Перечислим другие варианты использования 302 редиректа:
-
необходимость скрыть от посетителей страницу, находящуюся в процессе оптимизации, изменения дизайна, наполнения новым контентом;
-
непрерывная индексация исходной страницы имеет значение;
-
посетителям должен быть доступен только новый вариант странички;
-
то, что конечная страница не индексируется, не важно для владельца сайта;
-
размещение на старой страничке ссылок, индексация которых не должна прерываться;
-
вероятность частого изменения целевой страницы.
Другими словами, 301 и 302 редирект являются уникальными инструментами, поскольку позволяют веб-мастеру, который сумел разобраться в нюансах их применения, оптимизировать и продвигать сайт, постоянно вносить в него необходимые изменения и при этом сохранять все достигнутые ранее результаты.
Как настроить 302 редирект в .htaccess
Создать 302 редирект в файле .htaccess могут исключительно пользователи веб-сервера Apache.
Наиболее простой вариант настройки 302 редиректа в .htaccess займет всего две строки:
RewriteEngine on
Redirect 302 /old-url https://dh-agency.ru/new-url
Когда речь идет о необходимости настроить более сложную переадресацию, затрагивающую весь сайт, потребуется чуть больше действий:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.dh-agency.ru [NC]
RewriteRule ^(.*)$ https://dh-agency.ru /$1 [R=302,L]
302 редирект проставляется практически так же, как 301, единственное отличие – в замене R=301 на R=302.
Настройка 302 редиректа с помощью PHP и JavaScript
Чаще всего программисты подходят к настройке редиректов просто – прописывают приведенные раньше коды в файле .htaccess. Опасность заключается в том, что такой подход нередко приводит к появлению разного рода проблем, потому что внесенный в файл код либо не срабатывает, либо функционирует неправильно.
Спровоцировать ошибки могут как неполадки внутри самой CMS, так и необходимость расположить код на редирект выше или ниже и многое другое. Чтобы их избежать, применяют альтернативные варианты − PHP или JavaScript.
PHP редирект
PHP − это сервероориентированный язык, то есть переадресация осуществляется не в браузере пользователя, а на сервере. Каждая страница, на которую перенаправляется посетитель, получает уникальный REFERER, в результате чего источник скрыть невозможно.
Обращаем ваше внимание, что код редиректа должен располагаться так, чтобы он прочитывался раньше, чем на экран будет выведен первый символ. Это значит, что пробел перед <? приведет к несрабатыванию редиректа.
PHP-редиректы требуется оформлять в отдельные php-файлы.
Код редиректа на примере файла index.php:
<?php
header («Location: https://stokrat.org/», TRUE, 302);
?>
или
<?php
header («Location: https://stokrat.org/», TRUE, 301);
?>
JavaScript-редирект
Главный недостаток этого варианта заключается в том, что если JavaScript в браузере пользователя выключен, а это встречается довольно часто, переадресации не будет.
Менее заметный минус связан с задержкой, которая объясняется предварительным прогружением html-страницы с белым экраном и последующей переадресацией.
Оформляется редирект в <body> либо в <head>:
<script type=»text/javascript»>
document.location = ‘https://stokrat.org/’;
</script>
Скорость срабатывания этого кода однозначно выше, чем у «Яндекс.Метрики», то есть посетитель не будет засчитан до 302 редиректа «Яндексом».
Как выявить 302 редирект на сайте
Убедиться в правильности настройки 301 и 302 редиректа очень легко. При введении в адресную строку старого адреса наблюдаем за происходящим. Изменение адреса говорит о том, что с редиректом все хорошо. Адрес остался прежним – необходимо искать источник проблемы, но для начала советуем почистить кэш и попробовать еще раз.
Существует еще один вариант – обратиться для проверки кода ответа сервера к онлайн-сервисам, например http://4web.su/s_redirect/. При правильной настройке редиректа вы после введения имени домена увидите код ответа 301 или 302, это зависит от того, какую переадресацию планировалось получить изначально.
Есть сервисы, дополнительно отображающие код, отдаваемый сервером после редиректа, и здесь существует только один верный вариант – 200 ОК.
Приведем пример проверки работы http-версии сайта. В первую очередь обращаем внимание на сведения о настройке 301 редиректа (постоянного), новом адресе (https-версии сайта) и двух кодах ответа − 301 Moved Permanently и 200 ОК.
Код 404 там, где должен быть 200 ОК, говорит о неправильной настройке редиректа. Пример приведен на скриншоте ниже.
Часто задаваемые вопросы про 302 редирект
-
Бытует миф о запрете использования 302 редиректа, который возник после попыток его применения программистами для Google-фильтра Aging Delay.
Сначала сайты стремительно набирали ссылочную массу, но через полгода в списке поисковой выдачи их уже не было. Можно было предположить, что они или попадали в «песочницу», или никакого фильтра возрастной задержки не было вовсе.
-
При поиске ответа на вопрос, в чем отличие 301 от 302 редиректа и какой когда использовать, можно увидеть массу советов избегать 302, поскольку якобы для поисковиков понятен только 301, а Temporary способен вызвать лишь проблемы.
Когда-то такое мнение имело право на существование, но уже давно устарело. Алгоритмы оптимизации совершенствуются с каждым днем, поэтому сегодня применять 302 редирект не просто можно, но и нужно.
-
Наконец, разбираясь, как влияет на оптимизацию 302 редирект, стоит затронуть тему текстовых ссылок и показателей выдачи.
Напомним, что текст, заключенный в теги <a>-</a>, − это анкор. Без тегов, соответственно, безанкорная ссылка. Она начинается с www либо с http://, а также может прятаться за словами «здесь», «тут» и подобными им. Адрес, имеющий вид имя-сайта.ru, − пример анкора. Конечно, более естественной выглядит безанкорная ссылка.
Вид линка влияет на продвижение: анкорная упрощает его, но отличается кратковременным эффектом. Безанкорная может сработать через определенный промежуток времени, и при этом результат будет длиться гораздо дольше.
На первое место здесь выходит текст, который находится до и после линка, поскольку анкора нет.
Перед оптимизаторами по-прежнему остро стоит вопрос, есть ли опасность при использовании редиректа? Если быть недостаточно осмотрительными, да, есть.
В чем она заключается? Допустим, все 100 страниц своего сайта вы переадресуете на главную. В результате может произойти либо его понижение в поисковой выдаче (что не самое страшное), либо полное удаление старого контента из индекса, включая всю ссылочную массу.
Скачайте полезный документ по теме:
Чек-лист: Как добиваться своих целей в переговорах с клиентами
Во избежание этих проблем рекомендуем снизить до минимума 302 редирект на главную страницу, а остальные перелинковать между собой по тематике.
Переадресация является техническим параметром сервера и сайта. Редирект позволяет оптимально распределить исходящие ссылки и тем самым улучшить продвижение.
Не стоит забывать, что при использовании 302 редиректа необходимо соблюдать определенную осторожность, поскольку промахи в настройках способны уничтожить ваши предыдущие достижения. И напротив, умелое применение переадресации может вывести ваш сайт в топ.

Статья опубликована: 16.08.2018
Облако тегов
Понравилась статья? Поделитесь:
1 712
◴ 7 мин.
В этой статье вы узнаете
- Что такое 302 редирект.
- Как реализовать 302 и 301 редирект.
- Разница между 301 и 302 редиректом.
- Проверка правильности настройки 302 и 301 редиректа.
- Преимущества 302 редиректа.
- Когда использовать 302 редирект. Примеры.
302 редирект: что это

302 редирект (Temporary redirect) — это способ сообщить поисковым системам и пользователям, что страница временно переместилась, и направить их на новую страницу на короткий период (1-10 дней).
Но использование неправильного перенаправления может значительно повлиять на SEO продвижение и удобство использования сайтом.
302 и 301 редирект: какая разница

302 редирект (временный) — это код статуса HTTP-ответа, который сообщает поисковым системам, что страница перемещена, но только временно. Затем он направляет пользователей и поисковые системы на новую временную страницу.
301 редирект (постоянный) — это код состояния HTTP-ответа на стороне сервера, который сообщает пользователям и поисковым системам, что страница была перемещена навсегда и не вернется.
Для пользователей разница между двумя типами перенаправления нет. Они отправляются на новую страницу независимо от типа редиректа.
Основное различие между 301 и 302 редиректом — это количество времени, в течение которого перенаправление выполняется.
Важно: 302 редирект сохраняет равенство ссылок и рейтинг страницы.
Увеличить продажи
Когда вы используете 302 переадресацию, старая страница сохраняет свой рейтинг в поисковой системе. Что очень важно при SEO оптимизации сайта. При 301 редиректе страница теряет рейтинг и может быть деиндексирована поисковыми системами. То есть страница может исчезнуть из поиска.
Основными причинами использования 301 (постоянного) редиректа являются:
- Вы сменили домены.
- Люди заходят на ваш сайт по нескольким URL-адресам.
- Вы объединяете два сайта или страницы.
Вы также можете использовать 301 редирект при переключении сайта с HTTP на HTTPS и при объединении двух связанных страниц. Каждый раз, когда вы перемещаете страницу и не собираетесь возвращать ее, используйте 301.
Когда вы используете переадресацию 301, страница больше не рассматривается поисковыми системами. Поэтому важно использовать правильный тип переадресации.
Например, у вас есть страница на сайте, которая существует уже несколько лет и отображается по ключевому запросу в вашей отрасли. Вы решаете отключить страницу на несколько дней, чтобы изменить дизайн страницы.
Если вы используете 301 редирект, то поисковая система решит, что страница исчезла навсегда, и удалит ее из индексации.
Используйте 302 редирект, тогда поисковая система будет считать, что страница вернется. Не все перенаправления одинаковы и использование неправильного редиректа может серьезно повлиять на SEO продвижение вашего сайта.
302 и 301 редирект: как реализовать

1. 302 редирект для страницы в файле .htaccess
RewriteEngine on
Redirect 302 /old-url https://prof-mk.ru/new-url
2. 302 редирект для всего сайта в файле .htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.ru [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.ru [NC]
RewriteRule ^(.*)$ https://newsite.ru/$1 [L,R=302,NC]
3. 302 редирект через PHP прописывается вначале файла index.php
PHP редирект осуществляет перенаправление не в браузере пользователя, а на сервере.
4. 302 редирект с помощью JavaScript. Код размещается в <body> либо в <head>.
<script type=«text/javascript»>
document.location = ‘https://site.ru/‘;
</script>
1. 301 редирект для страницы в файле .htaccess
RewriteEngine on
Redirect 301 /old-url https://prof-mk.ru/new-url
2. 301 редирект для всего сайта в файле .htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.ru [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.ru [NC]
RewriteRule ^(.*)$ https://newsite.ru/$1 [L,R=301,NC]
302 и 301 Redirect: проверка правильности настройки
1. Проверка через браузер
Введите адрес страницы или сайта в браузере и наблюдайте за перенаправлением. Если переадресация на новую страницу или сайт произошла, значит настройки выполнены верно.
2. Проверка через онлайн-сервес
Пример онлайн-сервеса для проверки 302 и 301 Redirect https://4web.su/s_redirect/
Вводите вашу новую страницу или сайт и получаете код ответа. Зависит от того, какой редирект вы настраивали. Код ответа для 301: 301 Moved Permanently и 200 ОК.
Например, 301 Redirect сайта с http на https.
Если вместо кода ответа — 200 OK, вы получаете — 404 Not Found, тогда вы неправильно настроили редирект.
Преимущества 302 Redirect
1. 302 Redirect улучшает UX (пользовательский опыт)
Данный редирект гарантирует, что пользователи и поисковые системы всегда найдут интересующий их контент.
Например, если товара временно нет в наличии или вы проводите редизайн страницы, то вы можете использовать временную переадресацию.
Тем самым направив клиентов на страницу товара, который сейчас есть в наличии, или на страницу, сообщающую им, когда появится обновленная версия страницы.
2. 302 Redirect временный
В отличие от 301 страницы, данная переадресация является временной. То есть вы можете переключиться обратно в любое время. Тем самым обеспечивая большую гибкость для владельцев сайтов.
Например, вы можете временно отправлять пользователей на связанную страницу, пока вы изменяете дизайн старой страницы.
Поскольку переключение является временным, поисковая система не будет удалять страницу из результатов поиска или обесценивать её рейтинг.
301 перенаправление является постоянным. Вы говорите поисковой системе и пользователям, что страница исчезла и никогда не вернется. При этом рейтинг и ссылочный вес страницы обнуляется.
3. 302 не навредит вашему SEO
Временная переадресация сообщает поисковым системам, что переход является временным и сохраняет рейтинг старой страницы и ссылочный вес. В результате это не повлияет на ваше SEO продвижение.
Когда страницу больше не нужно перенаправлять, просто удалите временную переадресацию.
4. Временное перенаправление проще реализовать
Для создания 301 перенаправления требуется доступ к вашему коду, то есть к файлу .htaccess. А значит большинству маркетологов и владельцев сайтов придется прибегать к помощи программистов.
Временную переадресацию можно легко создать с помощью плагина. Например, плагин для WordPress: Advanced 301 and 302 Redirect. Таким образом, вы можете быстро внедрить временное перенаправление и легко удалить.
Важно: Не используйте временную переадресацию при постоянном перемещении страницы только потому, что это проще. Если перемещение страницы является постоянным, всегда используйте 301.
Когда использовать временный Redirect
Рассмотрим несколько примеров, когда использовать временную переадресацию.
1. Когда страница временно перемещается
Временный перенаправление не имеет практического значения для пользователей. Они все равно попадают на новую страницу. Однако для поисковых систем временный характер переключения имеет решающее значение.
По сути, вы говорите поисковым системам: «Эй, не беспокойтесь об этой странице прямо сейчас. Старая страница скоро вернется.»
Если вы уверены, что переход носит временный характер, то вам подойдет данное перенаправление. Например, вы можете временно переместить страницу, потому что:
- Вы обновляете страницу и она еще не готова.
- Вы хотите получить отзывы о новой странице, прежде чем переходить на постоянную переадресацию.
- Вы проводите акцию, которая зависит от времени, и хотите перенаправить посетителей на страницу на короткое время.
2. Когда страница находится в стадии разработки
Еще одна причина использовать временное перенаправление — когда страница или сайт находится в стадии разработки. В результате обширных изменений дизайна ваш сайт может потребоваться отключить, что может расстроить пользователей и сбить с толку поисковые системы.
Вместо того, чтобы оставлять пользователей в подвешенном состоянии, временное перенаправление позволяет дать им знать, что страница или сайт скоро вернутся.
В этой ситуации вы можете отправить пользователей на страницу регистрации по электронной почте или предложить часы обратного отсчета, чтобы они знали, когда сайт вернется. Также вы можете указать ссылки на ваши группы в социальных сетях.
3. Когда страница не работает
Вы же не хотите, чтобы пользователи попадали на пустую страницу или получали ошибку 404. Поэтому временное перенаправление лучшее решение. Помните, используйте временную переадресацию только в том случае, если вы планируете вернуть страницу.
Например, у вас есть страница, которая не работает. Временная переадресация гарантирует, что страница сохранит свой рейтинг при SEO продвижении.
4. Когда товара нет в наличии
Когда вы в последний раз пытались заказать товар через Интернет, только чтобы узнать, что товара больше нет в наличии. И вы не знаете, когда он снова станет доступен.
Это расстраивает и вы отправитесь к конкуренту, чтобы завершить покупку. Вот почему дефицит (когда товара нет в наличии) может снизить доход компании и повлиять на доверие к бренду.
Реальность такова, что товары иногда заканчиваются. Это просто часть ведения бизнеса. Производитель может закрыться или на цепочку поставок может повлиять что-то неподконтрольное вам.
Хотя вы не всегда можете контролировать дефицит, вы можете использовать перенаправления, чтобы сохранить взаимодействие с пользователями. Например, вы можете использовать временную переадресацию для отправки пользователей на страницу с указанием, когда появится продукт.
Вы также можете направить пользователей к связанному продукту (просто не забудьте сообщить им об этом!). Когда продукт снова появится в наличии, вы можете активировать исходную страницу и сохранить показатели SEO страницы, над которым вы так много работали.
5. Когда A / B тестирование контента или редизайн
A / B тестирование позволяет протестировать две разные версии одной и той же страницы. Чтобы увидеть, какая версия стимулирует продажи или любое другое поведение, которое вы хотите, чтобы пользователи выполняли.
Например, A / B тестирование поможет выяснить, какие призывы к действию лучше использовать или на что пользователи сайта с большей вероятностью отреагируют.
Вы же не хотите перенаправить на постоянную страницу, чтобы потом обнаружить, что старая страница была лучшей. Вместо этого используйте временную переадресацию, чтобы временно отправить часть ваших пользователей на настроенную страницу без потери SEO рейтинга страницы. Когда тест закончится, вы можете удалить перенаправление и вернуться к нормальному состоянию.
6. Для перенаправления на настольную или мобильную версию вашего сайта
Если вы еще не предлагаете удобный для мобильных устройств сайт, пора это сделать. Поисковые системы с 2019 года перешли на индексацию, ориентированную на мобильные устройства.
Ваш сайт должен хорошо работать как на мобильных устройствах, так и на компьютерах.
Например, банковское приложение может предлагать оптимизированную версию сайта для мобильных пользователей. Временное перенаправление отправит пользователей на мобильный сайт.
Вы также можете использовать оптимизированную панель навигации для мобильных устройств и предоставить пользователям настольных компьютеров доступ к полной версии.
В обоих случаях временная переадресация гарантирует, что каждый пользователь попадет на наиболее полезный для него сайт.
Заключение
302 перенаправление является временными и обычно сохраняет SEO показатели исходной страницы. 301 страница является постоянной и указывает поисковым системам игнорировать старую страницу в пользу новой.
Теперь, когда вы понимаете разницу, убедитесь, что вы используете правильный вариант на своем сайте.
Виды редиректов
Различается по двум показателям:
- Постоянность или временность перенаправления;
- Доступность старой страницы после изменения настроек.
Рассмотрим виды подробнее.
300 «Множественный выбор» (Multiple Choices)
Код ответа возвращается, когда по одному URL доступно несколько вариантов контента. Например, когда для одной страницы доступно несколько языковых версий. Пользователю предоставляется возможность выбрать подходящую версию.
301 «Перемещена навсегда» (Moved Permanently)
Статус 301 указывает, что веб-сайт или страница навсегда изменили URL. Для запрашиваемой страницы существует новый адрес, по которому должны осуществляться обращения.
Для пользователя документ по старому адресу больше не доступен, а роботы поисковых систем увеличивают период для перехода страницы и со временем выкинут её из индекса.
Новый адрес наоборот же доступен, как и для посетителей, так и для роботов. Дополнительно поисковые боты будут понимать, что новая страница является преемником старого адреса и все характеристики страницы, будут перенесены на новый адрес.
301-редирект используется:
- Для удаления ненужной страницы из поиска и сохранения ее показателей на новой странице;
- Для удаления дублей. Это страница идентичная той, на которую идет настройка.
Общий вид кода 301 «Перемещена навсегда» (Moved Permanently)
302 «Перемещена временно» (Moved Temporarily)
Код ответа 302 применяется для временных перенаправлений. Поскольку конечный адрес может быть изменен в любой момент, обозреватель должен продолжать использовать старый URL и дальше, но посетитель не увидит перемещенный документ.
Для поисковых систем это сигнал, что страница ещё вернется и удалять её не нужно, а страницу акцептор индексировать не требуется. Хотя если редирект будет настроен продолжительное время, то ПС могут его обработать, как 301 код ответа.
302-редирект используется:
- Временное перенаправления трафика с одного домена на другой;
- Если данные часто меняются и необходимо показать пользователю его новую версию.
Важно. Не используйте при переносе сайта и редиректе. ПС проиндексируют обе версии. Они воспримут это как полное дублирование. Высокая вероятность, что одну из версий признают некачественной и исключат из поисковой выдачи.
303 «Смотри другое» (See Other)
На практике код ответа 303 похож на 302, но он не обозначает перемещение запрашиваемого адреса. 303 код ответа сервера указывает что запрашиваемый ресурс находится по другому URL. Браузеру предоставляется только адрес. Он не кэшируется.
303-редирект используется: в интернет-магазинах для перенаправления людей со страницы где закончились товары на страницу с аналогичными характеристиками.
304 «Не модифицирован» (Not Modified)
Код ответа с сервера говорит, что страница не редактировалась со времени последнего кеширования. Поэтому браузеру/роботу не нужно дополнительно проверять страницу. SEO-специалисты применяют заголовки If-Modified-Since и Last-Modified для обновления данных кэша. Данный подход позволяет увеличить скорость обхода страниц.
Этот вид редиректа помогает снизить нагрузку на высоконагруженных проектах и на больших сайтах, на которых ПС могут сканировать не приоритетные для нас страницы. Поэтому до нужного контента робот может не добраться.
Рассмотрим 2 примера.
Предположим на сайте есть 1 млн. страниц, но есть 3 условия:
- Поисковый бот за 1 раз может обойти не более 50.000 страниц.
- Сканирование продолжается не более N минут.
- При сканировании сайта поисковый бот начинает обходить сайт с главной страницы.
Учитывая данные ограничения, то поисковые боты будут переходить ~примерно, по одним и тем же разделам. Что в свою очередь приводит к тому, что большая часть страниц сайта не обходится поисковыми ботами.
В этом случае нам и поможет код ответа 304. Когда наш сервер сообщает, что определенные страницы не изменялись с последнего сканирования и повторного сканирования она не требует. Это в свою очередь сообщает боту, что он может проверить другие страницы. Например, в первый раз бот обошел 50.000 страниц, ко второму сканированию изменились только 5.000 страниц, а 45.000 отдадут код 304. Значит во второе сканирование бот сможет получить актуальную информацию с 5.000 — обновленных страниц + 45.000 — страниц без изменения + 45.000 страниц, которые ранее бот не мог обойти. К 3-й попытке будет 5.000 — обновленных страниц + 90.000 — страниц без изменения + 45.000 новых страниц. И так итерацией за итерацией, бот обойдет весь сайт.
Второй пример, когда сайт очень высоко нагружен и в один момент времени необходимо производить частое обновление страницы. То чтобы снизить нагрузку, пользователю можно отдавать код 304 и сообщать, что страница не изменилась и заново скачивать информацию не требуется. Таким образом снижая нагрузку на сервер, пользователь обновляет информацию на сайте только в момент реального обновления информации на странице.
Важно! Данный редирект нужен не для всех проектов и нужно учитывать следующие моменты:
- Этот вид редиректа актуален на больших сайтах, на которых ПС часто не доходят до нужного контента из-за сканирования неприоритетных страниц.
- Поисковые системы не всегда учитываю данный код ответа. Поэтому перед внедрением лучше уточнить у поддержки ПС.
305 «Используй прокси» (Use Proxy)
Используется для анонимности. В ответ на запрос обозревателя сервер выдает адрес прокси-сервера. Подключение к сайту возможно только через него.
306 Зарезервировано
Код ответа указывает, что клиент должен использовать определенный прокси сервер. Сейчас это неактуально. Код остается зарезервированным.
307 «Временная переадресация» (Temporary Redirect)
Код ответа указывает, что сайт доступен по другому адресу. Страница не кэшируется. ПС не добавляют в индекс новый адрес.
Создан для уточнения 302. Единственное отличие — метод передачи запроса. 307 редирект сохраняет метод отправки (GET, POST), который указывает что страницу не нужно кешировать, а 302 — нет. 303 редирект работает по методу GET
308 Перемещено навсегда» (Permanent Redirect)
Это аналог 301-редиректа с разницей, что не позволяет заменить метод запроса с POST на GET. Данный метод может использоваться для настройки перенаправления на странице с 2-3 формами, данные в которых передаются методом POST. Например, Google Drive использует код ответа 308 чтобы показать, что передача информации прервана.
Важно! Данный метод экспериментальный и может не корректно отрабатывать.
Типы реализации редиректов
Рассмотренные виды редиректов отличаются друг от друга по функционалу. Существует и другой фактор классификации — техническое исполнение. По нему выделяются такие варианты: htaccess, PHP, JavaScript и HTML-редиректы. Рассмотрим их подробнее.
Htaccess
Htaccess — этот системный файл веб-сервера Apache. На хостинге расположен в корне сайта. Доступ к нему происходит через панель управления или FTP. Настройка редиректа происходит с помощью прописывания правил. Открывается любым текстовым редактором. Переадресация работает быстро и незаметно для пользователя. Подробнее работу с файлом .htaccess рассмотри далее.
Подробную работу с данным файлом разберем в разделе.
PHP
PHP — серверный язык программирования. Переадресация происходит не в исходном коде страницы, а скрипте на сервере. Работает медленнее чем редирект через файл .htaccess. Правила прописываются в index.php. Удобен если перенаправление делается выборочно, где много правил для отдельных страниц.
Настройка
Для создания редиректа применяется функция header(). Ее синтаксис: void header ( string $string [, bool $replace = true [, int $http_response_code ]] ). Рассмотрим на примере. Есть два файла redirect.php, и redirect2.php. В первом пропишите код:
<? php header('Location: http://localhost/ redirect2.php '); ?>
Во втором файле пропишите код: echo «Привет! Вы находитесь в файле redirect2.php»;
Перейдя по ссылке первого файла redirect.php, произойдет перенаправление.
Переход по 301 редиректу
По умолчанию в заголовок передается редирект 302. В поисковые системы такое перенаправление может затянуться.
Рассмотрим пример принудительной перезаписи с 302 на 301:
<?php header('Location: http://localhost/redirect2.php',true, 301); ?>
Такое перенаправление возможно в два этапа.
- Перезапись кода состояния;
- Переход на новый адрес.
<?php header('HTTP/1.1 301 Moved Permanently');
header('Location: http://redirect2.php'); ?>
Например. Перенаправление в зависимости от роли пользователя, определяется во время аутентификации. Значение для обработки записывается в переменную $who:
<?php
switch ($who){
case "user": $redirect_url = "/blog.html"; break;
case "author": $redirect_url = "/author.html"; break;
case "admin": $redirect_url = "/admin.html"; break;
default: $redirect_url = "/registration.html";
}
header('HTTP/1.1 200 OK');
header('Location: http://'.$_SERVER['HTTP_HOST'].$redirect_url);
exit();
?>
Например, клик по ссылке ведет на страницу. С нее через пять секунд происходит переход на Рамблер.
Код HTML:
Нажми меня
Код файла redirect3.php:
<?php
header('Refresh: 5; url=http://rambler.ru/');
echo "Привет!Через 5 секунд вас выкинет на Рамблер))";
?>
Переход по 302 редиректу
JavaScript
Перенаправление происходит на стороне браузера. Скорость переадресации снижается, потому что скрипт должен загрузится для начала работы.
Способ не работает, если в браузере отключен JavaScript.
Как пользоваться
Пропишите код в одном файле с расширением js и добавляйте его на каждой странице прописав:
<script type="text/javascript" src="redirect.js"></script>
Редирект на другой сайт
<script type="text/javascript">
location="https://yandex.ru";
</script>
Перенаправление сработает на сайт yandex.ru.
Редирект на другой сайт с задержкой пять секунд:
<script> type="text/javascript">
setTimeout(function(){
location="https://yandex.ru";
}, 5000);
</script>
HTML
Создается в индексном файле внутри тегов
метатегом Refresh. Происходит в исходном коде страницы. Это означает что редирект производится непосредственно браузером.
Например, перенаправление настроено с index.html на new_index.html. Работает по схеме:
- Браузер запрашивает файл индексной страницы (index.html) на сервере;
- Сервер находит index.html и отвечает на запрос браузера;
- Браузер открывает индексную страницу. Считывает html-код. Находит строку с редиректом, затем — название нового URL;
- Веб-браузер отправляет на сервер запрос где хранится new_index.html;
- Сервер находит эту страницу. Отвечает на запрос браузера;
- Веб-обозреватель открывает ее.
Мета-тег выглядит так:
<meta http-equiv="refresh" content="0;URL=http://site.ru" />
Где:
- content — время ожидания перенаправления в секундах. Пропишите 0, чтобы перенаправление происходило мгновенно;
- URL — ссылка на новую страницу.
Как настроить редирект
Откройте index.html в нем пропишите:
<head>
<meta http-equiv="refresh" content="0;URL=http://site.ru" />
</head>
Если на сайте установлен SSL-сертификат, укажите https:// вместо http://.
Получится следующее:
Как настроить редирект в index.html
Настройка в .htaccess
Рассмотрим подробнее где расположен, как создать (если нет на хостинге) и настроить перенаправление в файле .htaccess.
Где найти файл .htaccess и принципы работы с ним
Данный файл используется только на серверах Apache. В зависимости от HTTP сервера могут использоваться: .config, .http, access.conf.
Файл .htaccess находится в корне сайта.
Как создать .htaccess
Чтобы создать файл, выполните следующие шаги:
- Откройте любой текстовый редактор, создайте пустой файл с расширением .txt;
- Переименуйте файл в .htссess, где «htссess» является расширением файла».
- Файл готов.
С чего начать файл
Перед правилом пропишите три директивы:
- RewriteEngineOn. Активирует механизм преобразование модуля mod_rewrite;
- Options+FollowSymLinks. Данный параметр позволяет в корневом каталоге иметь символическую (в ней вместо пользовательских данных прописан путь к файлу, открываемому при обращении к этой ссылке) ссылку указывающую на другую директорию;
- RewriteBase.Часть URL, которая дописывается вначале адресов, созданных после преобразования.В основном в них указывается слеш (/). Это означает что URL начинаются от корня сайта.
Важно. Прописывайте их вначале файла .htaccess, чтобы не повторять перед правилами.
Директивы
Директивы — это команды, которые прописываются в конфигурационном файле .htaccess. Все команды должны начинаться с новой строки.
Например, необходимо разрешить доступ к веб-сайту только с определенного IP. В htaccess пропишите:
Order allow deny
Deny from all
Allow from 192.112.12.198
Где директива:
- Order. Далее указывается порядок выполнения команд;
- Deny. Запрет доступа всех пользователей к веб-сайту;
- Allow. За командой прописывается IP адрес попадающий в список исключений и открывающий ему доступ к директивам и файлам.
Флаги
После директивы RewriteRule прописываются флаги. Это два флага — [L,R=301]:
- L — команда на сервер для остановки преобразований после этой строки;
- R=301 —обозначение редиректа и его тип.
Порядок правил имеет значение
Директивы выполняются в таком порядке, в котором прописаны. Если правила пересекаются или противоречат один другому, выполняется то, что выше.
Расположите команды от страниц с высоким уровнем вложенности к страницам с низким.
Комментарии
Строки в файле, перед которыми находится знак решетки (#) не учитываются и не выполняются сервером. Оставляйте в них комментарии к правилам. Что это за команда и для чего создавалась. Используйте решетку для отключения неиспользуемых команд.
Внешний вид файла .htaccess
Кириллические адреса
Это название веб-сайта на русском языке. Например. телефон.рф. Такие адреса легче записывать в поисковой строке Яндекса или Google. Кириллические домены выбирают для веб-сайтов, ориентированных на русскоговорящую аудиторию.
Например, владельцы доменов на латинице регистрируют аналогичный домен на кириллице и настраивают перенаправление с русского домена на английский. Так, если прописать в адресную строку обозревателя домен «яндекс.рф», откроется «yandex.ru».
Чтобы настроить такой редирект, необходимо кириллические адреса перевести в punycode. И использовать в .htaccess URL формата punycode.
Для перевода используйте https://www.reg.ru/web-tools/punycode
Перевод кириллических адресов в формат punycode на reg.ru
Блок IfModule
Если на сервере нет модуля для редиректа, например mod_rewrite, это может вызывать ошибки. В исходном коде с правилами для mod_rewrite пропишите условие IfModule.
Например, если нужно добавить переадресацию:
RewriteCond%{HTTP_HOST} ^www.domain.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
Чтобы не было ошибок, пропишите:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
</IfModule>>
Сервер, увидит условие (If), проверит, есть ли модуль mod_rewrite. Если нет — директивы внутри условия выполняться не будут.
Пробуем разные варианты
Прописали код с правилом в .htaccess, а редирект не сработал. Что делать? Посмотрите, какая установлена версия сервера Apache, найдите официальное руководство, посмотрите, как должны быть прописаны директивы.
Настройка 301 редиректа в .htaccess
Рассмотрим практические примеры. Адреса сайтов измените на свои.
Редирект с WWW — на без WWW
Вариант 1:
RewriteCond%{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Вариант 2:
RewriteCond %{HTTP_HOST} ^www..your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [R=301,L]
Перенаправление сайта без WWW на URL с WWW
Вариант 1:
RewriteCond%{HTTP_HOST} !^www..* [NC]
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]
Вариант 2:
RewriteCond %{HTTP_HOST} ^your-site.com [NC]
RewriteRule ^(.*)$ http://www.your-site.com/$1[L,R=301,NC]
Переход на HTTPS с HTTP
Вариант 1:
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
Вариант 2:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Вариант 3:
RewriteCond %{HTTPS} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
Вариант 4:
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]
301-редирект с HTTPS-версии на HTTP
RewriteCond %{HTTPS} "on"
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}[R=301,L,QSA]
Устраняет дубли URL с HTTPS в индексе ПС.
Перенос сайта на версию с HTTPS
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]
Редирект с страницы со / на URL без него, и наоборот
Рассмотрим оба способа
На URL без слеша
Вариант 1:
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteRule ^(.*)/$ /$1 [R=301,L]
Вариант 2:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule
^(.+)/$ /$1 [R=301,L]
На URL с “/” в конце
Вариант 1:
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
Вариант 2:
RewriteCond %{REQUEST_URI} /+[^.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
Заменяем последовательно идущие редиректы на один
Идущие один за одним переадресации объедините в одно правило. Например, переадресации с URL с WWW сразу на адрес с протоколом HTTPS и без префикса WWW, минуя промежуточный редирект (с HTTP на HTTPS):
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule^(.*)$ https://%1/$1 [R=301,L]
Или второй вариант:
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTP:PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}[L,R]
301-редирект одной страницы
Используйте директиву Redirect. Попробуйте один из вариантов:
Redirect301 /old-page /new-page
или
Redirect 301 /old-page/ https://your-site.com/new-page
Можно перенаправить и с помощью модуля mod_rewrite:
RewriteCond %{REQUEST_URI} ^/old-page/$
RewriteRule ^.*$ http://your-site.com/new-page/?[R=301,L]
Переадресация директории
RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2 [R=301,L]
Второй вариант:
RewriteRule ^old-catalog /new-catalog/$1 [R=301,L]
Редирект на другой домен
Первый способ:
RewriteCond %{HTTP_HOST} ^old-your-site.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old-your-site.com [NC]
RewriteRule ^(.*)$ https://new-your-site.com/$1[L,R=301,NC]
Второй:
RewriteCond %{HTTP_HOST} ^www.old-your-site.com$ [NC]
RewriteRule ^(.*)$ http://new-your-site.com/$1[L,R=301]
RewriteCond %{HTTP_HOST} ^old-your-site.com$ [NC]
RewriteRule ^(.*)$ http://new-your-site.com/$1[L,R=301]
В ряде случаев полезна переадресация через RewriteRule
Как перенаправлять людей с разных адресов на выбранную страницу? Используйте директива RewriteRule. Она прописывает правила перехода. Синтаксис такой:
RewriteRule Шаблон Подстановка [коды]
- При внешнем редиректе меняется урл адреса в строке браузера — «[R=301,L]»
- При внутреннем — не меняет урл адреса в строке браузера — «[R=301]» или «[L]RewriteRule ^dir /dir-new/$1 [R=301,L]
301-редирект для страницы с параметрами
При редиректе ссылок с GET параметрами стандартные правила в htaccess не работают. К этим правилам относят, например,
Redirect 301 /page.php?id=1 /page/
или:
RewriteRule ^page.php?id=1 /page/ [R=301,L]
Чтобы настроить редирект на страницу с другими параметрами, используйте директиву RewriteCond:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=1$
RewriteRule ^(.*)$ http://mysite.com/page/? [R=301,L]
Более подробный вариант:
RewriteEngine On
RewriteCond %{REQUEST_URI} /page.php
RewriteCond %{QUERY_STRING} ^id=1$
RewriteRule ^(.*)$ http://mysite.com/page/? [R=301,L]
Для создания массового редиректа, то воспользуемся регулярным выражением, где (.*) выбирает любое значение:
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^(.*)$ http://mysite.com/page/? [R=301,L]
Переадресация с простого url на ссылку с get-параметрами:
RewriteCond %{REQUEST_URI} /page.php$
RewriteRule ^(.*)$ https://mysite.com/newpage?id=1[R=301,L]
Еще один вариант:
RewriteCond %{QUERY_STRING} ^(?!id)
RewriteRule /page.php$ /newpage?id=1 [L,R=301,QSA]
301-редирект со страницы без заданного параметра в корень
Если адрес имеет вид: http://www.site.ru/?abc, то для перенаправления подойдет последовательность строчек:
RewriteCond %{QUERY_STRING} ^abc$ [NC]
RewriteRule^$ /? [R=301,L]
301-редирект для выбранного файла
Переадресация с адреса http://www.site.ru/dir/ должна идти так, чтобы страница http://www.site.ru/dir/index.php?IBLOCK_ID=1 открывалась по старому адресу. Пропишите спецсимвол $ в правиле.
RewriteRule^dir/$ http://www.site.ru/new-dir/ [R=301,L]
Смена страниц с html расширения на php расширение
Пропишите какой код:
RedirectMatch301 (.*).html$ http://www.new-site.ru$1.php
Задание типа индексной страницы
Это страница (файл), открывающаяся по умолчанию, когда пользователь делает запрос к любой директории. Например, прописав в адресной строке браузера адрес http://site.com/iPhone, откроется индекстый файл отвечающий этой директории. Если в директории iPhone нет индексной страницы, отобразится уведомление про ошибку 403.
Существуют такие типы индексных файлов: index.html, index.htm, index.php, index.phtml, index.shtml, default.htm или default.html. Чтобы задать тип индексной страницы, пропишите порядок загрузки типов файлов, лежащих в корне директории: DirectoryIndex index.html index.php index.htm index.shtml Другой пример. Если прописать в адресной строке обозревателя http://site.com/iPhone, откроется индексная страница index.html. Если нужно отобразить другую, например, iPhone.php, в .htaccess пропишите:
DirectoryIndex iPhone.php
Перенос картинок img на поддомен
Представьте. Вы едете один в машине. Она едет легко и быстро. А если загрузить багажник и посадить еще три человека. Будет ли такая же легкость при езде? С веб-ресурсом похожая история. Перенесите картинки на поддомен, пропишите такой код:
RewriteRule ^img/(.+).jpg$
http://img.domain.ru/$1.jpg [R=301,L]
Редирект с индексной страницы php на саму папку
Напишите такой код:
RewriteCond%{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://www.site.ru/ [R=301,L]
Для всех индексных страниц на сайте:
RewriteRule ^(.*)index.php$ http://www.site.ru/$1 [R=301,L]
Переход с поддомена на основной адрес
Если вы скопируете веб-сайт с поддомена test.site.com на домен второго уровня site.com ПС будут считать их за рзные сайты. Послений даже может попасть под фильтр Яндекса или Google. Роботы ПС посчитают новый веб-ресурс копией старого. Чтобы не потерять трафик и не попасть под санкции ПС используйте переход с поддомена. Пропишите такой код:
RewriteCond %{HTTP_HOST} ^test.site.com$ [NC]
RewriteRule ^(.*)$ http://site.com%{REQUEST_URI} [R=301,NC,L,QSA]
Редирект для файла в разных папках
RewriteRule [^abc]/unique-file.html /unique-file.html[R=301,L]
Код настроит 301-редирект со директорий типа http://site.ru/***/uniqe-file.html на один файл в корне /unique-file.html. Используйте его при редактировании сайта и изменении ссылок.
Создание ЧПУ-копии динамической страницы
Если требуется создать ЧПУ-копию какой-либо динамической страницы, то это можно также реализовать с помощью .htaccess
RewriteRule ^testovyi/test/?$/studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]
Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/
Настройка 403 кода ответа сервера для реф-спама (301-редирект для спама по REFERER) для списка ресурсов
Настройка позволяет отклонить спамный реферальный трафик с ресурсов по заголовку HTTP_REFERER.
RewriteCond %{HTTP_REFERER} ref-spam-site.ru [NC,OR]
RewriteCond %{HTTP_REFERER} another-ref-spam.ru [NC]
RewriteRule.* - [F]
Указание пути к файлу 404 ошибки с помощью .htaccess
Путь к файлу указывается с помощью следующей строчки:
ErrorDocument404 /404-for-me.php
Настройка редиректа для выбранных USER_AGENT’ов
Пропишите какой код:
RewriteCond%{HTTP_USER_AGENT}
(iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|
j2me|symbian|series 60|symbos|windowsmobile|
windows ce|ppc|smartphone|blackberry|mtk|bada|
windows phone) [NC]
RewriteRule (.*) http://mobile.site.ru/ [L,R=301]
Настройка редиректа для всех роботов ПС
Представлен список их USER_AGENT’ов:
RewriteCond%{HTTP_USER_AGENT} !(accoona|ia_archiver|
antabot|ask jeeves| baidu|dcpbot|eltaindexer|
feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|
grub-client|gulper|slurp|mihalism|msnbot|
worldindexer|ooyyo|pagebull|scooter|w3c_validator|
jigsaw|webalta|yahoofeedseeker|yahoo!slurp|
mmcrawler|yandexbot|yandeximages|yandexvideo|
yandexmedia|yandexblogs|yandexaddurl|yandexfavicons|
yandexdirect|yandexmetrika|yandexcatalog|yandexnews |
yandeximageresizer) [NC]
RewriteRule (.*) http://no-search.site.ru/ [L,R=301]
Рекомендации по работе с редиректами
Рассмотрим основные рекомендации при работе с редиректами.
Старайтесь не допускать переадресаций внутри веб-ресурса. Битые внутренние ссылки обязательно исправляйте.
Проверка правильности переадресации
Если после перенаправления не получили нужный код и сервис не показал информацию по редиректам, тогда надо перепроверить код. Используйте сервис для проверки кода ответа https://tools.discript.ru/http-code/:
Проверка правильности переадресации на tools.discript.ru
Создайте резервную копию
Перед созданием переадресации или любыми изменениями в настройках веб-сайта создайте Backup. Тогда если после внесенных изменений веб-сайт перестанет работать, вы сможет вернуть первоначальные настройки из резервной копии. Создайте его на сервере. Переименуйте, например в .htaccess-backup. Также данный файл можно загрузить на ПК.
Прописывайте правила по одному и проверяйте после каждого изменения
Если нужно настроить 3-4 переадресации, создавайте и запускайте их по одной. После создания правила посмотрите, чтобы все работало. Далее создайте новое правило. Иначе при возникновении ошибки трудно определить, какая директива ее вызвала.
Переадресация файла robots.txt
При изменении домена переход настраивается для каждой страницы и файла robots.txt на сайте. Чтобы склейка доменов в ПС прошла быстрее, не переадресуйте robots.txt на старом домене.
Генераторы .htaccess
Вы можете сгенерировать правила с помощью сервисов, а полученный результат добавить в файл .htaccess.
Алгоритм действий:
- Выберите редирект;
- Укажите дополнительные параметры;
- Получите готовый код. Копируйте его и добавляйте в конфигурационный файл.
Рекомендуемые сервисы:
- Htaccess.ru;
- Aleydasolis.com;
- Htaccessredirect.net.






















