Ошибка redirecting you to http

Содержание

  1. Редирект: что такое и какие виды бывают
  2. Что такое редирект?
  3. Зачем нужны редиректы?
  4. Виды перенаправлений
  5. Редирект 301
  6. Редирект 302
  7. Редиректы 303 и 307
  8. Типы редиректов
  9. Htaccess-редирект
  10. PHP-редиректы
  11. JavaScript-редирект
  12. HTML-редирект
  13. Сервисы для генерации кода редиректа
  14. Как проверить редирект страницы?
  15. Разбираем все виды редиректов (html, js, php, htaccess)
  16. Содержание:
  17. Редирект в HTML
  18. Редирект в JavaScript
  19. Редирект в PHP
  20. Редирект в .htaccess (RewriteEngine)
  21. Как исправить ошибку Слишком много перенаправлений в браузере
  22. Google Chrome
  23. Mozilla Firefox
  24. Safari
  25. Как определить причину цикличного перенаправления
  26. Как исправить ошибку перенаправлений (редиректов)
  27. Правильные настройки редиректов (перенаправлений)
  28. Принудительный HTTPS
  29. Принудительный HTTPS при использовании прокси-сервера
  30. Перенаправление с HTTP на HTTPS в Nginx
  31. Принудительно без www
  32. Принудительно с www
  33. Краткий итог

Редирект: что такое и какие виды бывают

Допустим, вы решили изменить имя сайта после ребрендинга или хотите сделать домен более коротким и понятным. Тогда вы спросите — как же минимизировать потерю трафика и не просесть в поисковой выдаче? Мы ответим — правильно настроить редирект!

В нашей статье вы найдёте подробную информацию о том, что это такое, познакомитесь с видами перенаправлений и узнаете, какие задачи решают редиректы.

Что такое редирект?

Редирект (или перенаправление домена) — это автоматическая переадресация посетителя с одного URL-адреса на другой.

При переходе на страницу, для которой настроен редирект, пользователь будет автоматически попадать на другую страницу. Например, при переходе по ссылке http://reg.ru/blog/ браузер автоматически перенаправляет пользователя на URL https://reg.ru/blog/. Как правило, для посетителей сайта этот переход остаётся незаметным.

Зачем нужны редиректы?

Редиректы помогают корректно перенаправлять посетителей на нужные страницы сайта без ущерба для пользовательского опыта и без нарушения требований поисковых систем. Правильно выполненный редирект сохраняет авторитет или ссылочный вес страницы-донора и передаёт его на страницу-акцептор.

Страница-донор — ресурс, с которого перенаправляются пользователи.

Страница-акцептор — веб-страница, на которую направляются пользователи.

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

  • Редирект с http на https (как в примере выше).
  • Перенаправление с URL с www на URL без www и наоборот. Например, при переходе с https://www.vc.ru браузер перенаправляет посетителя на https://vc.ru/. Дело в том, что с точки зрения поисковых систем www.site.ru и site.ru — разные URL адреса, и если сайт будет доступен с кодом ответа 200 по обеим ссылкам, то они будут считаться дублями. Это касается и редиректов через «/», как в примере выше.

Код ответа 200 — один из типов кодов HTTP, информирует пользователя об успешной обработке запроса.

  • Переезд сайта на другой домен, если владельцам сайтов не хочется потерять позиции сайта в поисковых системах и постоянных посетителей.
  • Перенаправление трафика с одной страницы сайта на другую. Например, если в интернет-магазине нет какого-то товара, то вы можете перенаправить трафик на страницу похожего продукта.
  • Перенаправление пользователей на мобильную версию сайта, к примеру с www.vk.com на www.m.vk.com.

Виды перенаправлений

Браузеры и роботы поисковых систем определяют вид редиректа по коду состояния HTTP. Перенаправления могут иметь разный HTTP-статус: 301, 302, 303, 307. Давайте рассмотрим каждый вид подробнее.

Редирект 301

Это самый распространённый вид перенаправления. Его можно сравнить с постоянным переездом — когда вы уезжаете из одного дома в другой и точно не вернётесь назад.

Получается, что HTTP-статус 301 (Moved Permanently) означает, что веб-страница навсегда перемещена с запрошенного URL на новый. После получения ответа 301 браузер делает новый запрос и быстро перенаправляет пользователя на актуальную страницу.

Поисковые системы хорошо реагируют на 301-й редирект, да и сложностей обычно не возникает. Но важно всё правильно настроить, чтобы пользователь при переходе не получил ошибку 404.

Редирект 302

Этот редирект 302 (Moved Temporarily) можно назвать «временным». Возвращаясь к предыдущему примеру с переездом в новый дом, этот вид можно сравнить, например, поездкой на дачу на летние каникулы — ваша квартира в городе никуда не денется, и вы сможете вернуться туда в любой момент.

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

Важно — редирект 302 не передаёт авторитет и ссылочный вес донора акцептору. Для поисковых систем это означает полное дублирование страниц, а потому одна из них (чаще всего старая) будет исключена из выдачи (кстати, как и в случае с 301).

Редиректы 303 и 307

307-й (Temporary Redirect) для поисковых систем фактически точная реплика (копия) 303-го (Found) редиректа. Это временное перенаправление трафика на новую страницу с сохранением всех параметров прежней.

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

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

Типы редиректов

Итак, виды редиректов отличаются друг от друга по своему функционалу. Но, существует и второй фактор для их классификации — техническое исполнение редиректа. По нему выделяются такие варианты:

Htaccess-редирект

Htaccess — системный файл, который принадлежит к корневой структуре сайта. Чтобы получить к нему доступ необходимо зайти в панель управления хостинга, на котором размещён нужный веб-ресурс. Для настройки любого вида необходимо разместить в нём строку с соответствующим кодом.

Чтобы настроить этот тип редиректа, вам нужно перейти в каталог сайта и открыть файл .htaccess или создать его, если он не существует. Далее добавить в файл необходимые строки:

  • old-site.ru — домен, с которого происходит редирект;
  • new-site.ru — домен, на который происходит редирект.

Ещё больше полезных материалов про редирект через .htaccess вы найдёте здесь.

PHP-редиректы

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

Этот тип работает медленнее, чем htacces, но, если у вас сотни страниц для которых нужно настроить редиректы и сделать это нужно выборочно, а не для всех подряд, именно PHP может стать оптимальным вариантом.

Подробную инструкцию о том, как сделать PHP-редирект вы можете найти в нашей Базе знаний.

JavaScript-редирект

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

Когда же его использовать? Например, при переезде на новый сайт, чтобы вывести на экран сообщение типа «сейчас вы будете автоматически переадресованы на наш новый сайт».

Настраивать JavaScript-редирект нужно в исходном коде страницы, с которой осуществляется перенаправление, изменив его текст между тегами — .

HTML-редирект

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

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

Сервисы для генерации кода редиректа

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

А если вам ну совсем не хочется копаться в коде, то закажите услугу «Переадресация домена», в которой сотрудники REG.RU сделают всё за вас! Услуга станет незаменимым инструментом для предпринимателей, которые хотят получить максимум пользы и прибыли со всех своих доменов и всего от 120 рублей в год.

Как проверить редирект страницы?

Самый очевидный способ — самостоятельно проверить перенаправление в браузере. Перед проверкой не забудьте очистить кэш. Также можно зайти в браузер в режиме инкогнито и проверить работу страницы.

Ещё можно использовать и специальные сервисы, которые помогут избежать этих «заморочек», например:

Настройка редиректа — важный навык для веб-мастера. Надеемся, что наша статья окажется полезной всем, кто впервые столкнулся с этой темой. Ну а для тех, кто не хочет погружаться в этот вопрос, есть специальные услуги, такие как «Переадресация домена» от REG.RU. ;).

А если у вас остались вопросы по теме — обязательно оставляйте их в комментариях.

Источник

Разбираем все виды редиректов (html, js, php, htaccess)

Содержание:

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

Редирект в HTML

Редирект в JavaScript

Метод replace() позволяет заменить одну страницу другой таким образом, что это замещение не будет отражено в истории просмотра HTML-страниц (history) браузера

Метод reload() полностью моделирует поведение браузера при нажатии на кнопку reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true , то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера. Такое поведение соответствует нажатию на кнопку reload . Если в качестве аргумента указать false , то браузер перезагрузит текущий документ с сервера. Такое поведение соответствует одновременному нажатию на reload и кнопки клавиатуры shift (reload+shift) .

Следующие примеры тоже перенаправят на google:

С помощью функции setTimeout возможно реализовать задержку переадресации перед выполнением редиректа (в примере — 5 секунд):

Простой пример редиректа с таймером:

Редирект в PHP

В php есть функция header() , которая разрешает не только подменять стандартные заголовки, но и добавлять новые.

Редирект HTML в PHP:

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

Первая строка указывает код http, а вторая, собственно, задает адрес. В большинстве случаев, проблем не возникнет. Однако, если у вас используется режим FastCGI , то вместо «HTTP/1.1 301 Moved Permanently» может потребоваться написать «Status: 301 Moved Permanently» .

Редирект в .htaccess (RewriteEngine)

Необязательный параметр status — это три цифры — код редиректа (например, 301). Если не указан, то по умолчанию подставляется 302.

URL-path — часть запрашиваемого пользователем (или поисковиком) адреса, которая должна обязательно начинаться со слеша (/)

URL-to-redirect — полный адрес сайта (и, возможно, часть пути), на который будет осуществляться редирект. Должен быть вида http://site.ru/ — то есть обязательно должен присутствовать протокол (http://) и закрывающий адрес сайта слеш (/).

Если URL-path заканчивается не слешем, то редирект будет срабатывать только в случае точного совпадения запрошенного пользователем адреса и URL-path .

Если URL-path заканчивается слешем, то редирект сработает не только для указанного адреса, но и для всех, которые начинаются на указанный. А к URL-to-redirect будет добавлена часть адреса, следующая за последним указанным слешем в URL-path .

Действие директивы RedirectMatch аналогично Redirect , но в параметрах URL-regexp и URL-to-redirect можно использовать регулярные выражения.

У директивы RewriteRule более широкий спектр применения. Который, в числе прочих возможностей, разрешает ее использования и для редиректа — с указанием в конце строки в квадратных скобках [ ] флагов L (выполнить немедленно) и R (редирект).

Источник

Как исправить ошибку Слишком много перенаправлений в браузере

Если вы видите ошибку Слишком много перенаправлений (ERR_TOO_MANY_REDIRECTS) в своем веб-браузере, значит что-то пошло не так. Также эта ошибка сопровождается сообщением Эта веб-страница имеет цикл перенаправления (This webpage has a redirect loop) и она блокирует загрузку сайта.

Ошибка Слишком много перенаправлений означает, что сайт продолжает циклично перенаправляться между разными адресами и это может никогда не прекратиться. Ваш браузер защищает вас от этого, разрешая только определенное количество перенаправлений (часто около десяти), прежде чем он «устанет» от этого и не выдаст данную ошибку.

Ошибка о цикличных перенаправлениях по-разному проявляется в разных браузерах:

Эта страница не работает (This page isn’t working)
перенаправил вас слишком много раз. ( redirected you too many times.)
Или
Эта веб-страница имеет цикл перенаправления (This webpage has a redirect loop)
Попробуйте очистить ваши куки. (Try clearing your cookies.)
ERR_TOO_MANY_REDIRECTS

Google Chrome

Страница не перенаправляет должным образом (The page isn’t redirecting properly).
Произошла ошибка при подключении к . Эта проблема иногда может быть вызвана отключением или отказом принимать куки. (An error occured during a connection to . This problem can sometimes be caused by disabling or refusing to accept cookies.)

Mozilla Firefox

Safari не может открыть страницу (Safari Can’t Open the Page).
При попытке открыть произошло слишком много перенаправлений. Это может произойти, если вы открываете страницу, которая перенаправляется на другую страницу, которая затем перенаправляется на исходную страницу. (Too many redirects occurred trying to open . This might occur if you open a page that is redirected to open another page which is then redirected to open the original page.)

Safari

Очень часто это является результатом конфликтных перенаправлений, одно из которых пытается принудительно установить HTTPS (SSL) соединение, а другое – обратно HTTP (не-SSL), или между URL-адресами с www и без www.

Для таких CMS, ​​как WordPress или Magento, это решается приведением к общему конфигурации base_url или URL-адреса сайта в коде или базе данных с перенаправлением в файле .htaccess.

Как определить причину цикличного перенаправления

Вы можете следить за всеми перенаправлениями с помощью инструментов разработчика в браузере Firefox или Chrome. Эти инструменты обычно открываются нажатием клавиши F12 (или Ctrl+Shift+I ). Откройте Сеть (Network), а затем перезагрузите страницу, на которой у вас возникла проблема.

После перезагрузки страницы вы увидите список перенаправлений. Проанализировав результаты, вы сможете найти «виновника» (если срабатывает перенаправление на одну и ту же страницу).

Основные типы перенаправления (код ответа состояния HTTP):

  • 301 редирект (постоянное перенаправление) – означает, что страница или элемент перемещен на постоянной основе, и браузер должен искать его в новом месте. Чаще всего записываются в файле .htaccess .
  • 302 перенаправление или редирект – это временное перенаправление, которое означает, что страница или элемент перемещен временно, и его адрес в будущем может измениться. Чаще всего записываются в коде веб-сайта.

Как исправить ошибку перенаправлений (редиректов)

Шаг №1: Очистить кэш и куки браузера

Очень часто циклические перенаправления могут вызываться файлами cookie в браузере, в которых закэшированы старые редиректы. Данные браузера, такие как история просмотров, кэш, файлы cookie и т.д., могут содержать ошибочные данные, которые вызывают ошибку ERR_TOO_MANY_REDIRECTS . Очистка этих данных – эффективный способ исправить ошибку. Чтобы очистить данные просмотра:

  • В Google Chrome нажмите Ctrl+Shift+Delete , выберите необходимые данные, время жизни данных и нажмите Очистить данные (clear data)
  • В Mozilla Firefox нажмите кнопку «Меню» и выберите «Параметры». Выберите Конфиденциальность, а затем очистить свою недавнюю историю (clear your recent history). Выберите Everything для диапазона времени, а затем нажмите Очистить сейчас (Clear Now).

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

Шаг №2: Попробовать в других браузерах

Ошибка ERR_TOO_MANY_REDIRECTS может возникать только в браузере, который вы используете. Вы можете попробовать открыть тот же URL в другом браузере. Если ошибка не устраняется, значит проблема может возникать на стороне сервера.

Правильные настройки редиректов (перенаправлений)

Как мы уже упоминали выше, причиной ошибки могут быть неправильные настройки на вашем сайте. В основном, они касаются настроек редиректов в файле .htaccess. Данный файл – это файл конфигурации, который используется для изменения поведения сервера Apache для каждой папки на сайте или сервере. С его помощью можно редактировать только некоторые конфигурации Apache, хотя перенаправления обычно разрешается редактировать.

У вас может быть несколько файлов .htaccess , которые каскадно влияют на каталоги. Если у вас есть один .htaccess в родительском каталоге, и другой в подкаталоге, они оба будут влиять на этот подкаталог. Т.е., это может быть причиной конфликта между этими файлами на разных уровнях.

Ниже приведен ряд примеров перенаправления (редиректов) в файле .htaccess , которые обычно используются на сайтах.

Принудительный HTTPS

Приведенный ниже код сначала проверяет, поступил ли запрос на сервер с использованием HTTP или HTTPS. Если в запросе не использовался HTTPS, то конфигурация скажет браузеру перенаправить на HTTPS-версию того же веб-сайта и URL-адреса, которые были запрошены ранее:

Принудительный HTTPS при использовании прокси-сервера

Вы можете использовать прокси-сервер, например, балансировщик нагрузки или веб-брандмауэр, для которого можно настроить использование SSL (HTTPS) на внешнем интерфейсе, но не на внутреннем. Чтобы это работало правильно, вам нужно проверять не только HTTPS в запросе, но и проверять, передал ли прокси-сервер исходный HTTPS-запрос на сервер, используя только HTTP. Код ниже проверяет, был ли запрос перенаправлен с HTTPS, и, если это так, не пытается дополнительно его перенаправлять:

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

Если на вашем веб-сервере работает Nginx, вы можете легко перенаправить весь ваш HTTP-трафик на HTTPS, добавив следующий код в файл конфигурации Nginx:

Замените domain.com на свой домен.

Принудительно без www

Следующий код в файле .htaccess проверяет, был ли запрошен сайт с www в начале доменного имени. Если www есть в URL, тогда он переписывает запрос и говорит браузеру перенаправить на доменное имя без www:

Принудительно с www

Этот код в файле .htaccess проверяет, не было ли запрошено имя сайта с www в начале доменного имени. Если www не включен в URL, тогда он переписывает запрос и говорит браузеру перенаправить на www-версию домена:

Краткий итог

Если на вашем сайте есть редирект в файле .htaccess , что перенаправляет на URL, который не совпадает с тем, что находится в базе данных, вы можете получить ошибку в браузере о бесконечном цикле перенаправления ( ERR_TOO_MANY_REDIRECTS ), как описано выше.

Однако теперь вы знаете, как выглядят некоторые распространенные перенаправления в .htaccess . Также, с помощью данной статьи, вы сможете сами протестировать, найти причину ошибки, а также устранить ее самостоятельно.

Источник

HTTP 302 codes are a valuable way to redirect website users to a different URL temporarily. However, if your website is delivering 302 redirects in error, it’s a sign that something’s wrong.

Don’t worry — you can fix this problem — but you’ll need to do some troubleshooting.

The first step is to understand precisely what HTTP 302 codes are, how they work, and why they occur. Once you know that, you can figure out what’s gone wrong and how to make it right.

In this post, we’ll tell you everything you need to know about HTTP 302 errors. Then we’ll share five troubleshooting tips to help you fix them.

Let’s get started!

Check Out Our Video Guide to The 302 HTTP Status Code

What Are HTTP 302 Status Codes?

302 codes are a specific type of HTTP status code. These codes are like “notes” that a server delivers to your browser.

Whenever you click on a link or navigate to a URL, your browser requests the webserver for the same. In return, the server sends back the relevant resource (e.g. the page you’re trying to access) along with an HTTP header. The HTTP status codes are inside that header.

Typically, you can’t see these status codes anywhere on the web page. You’ll only usually see them when an error occurs, or if you’ve installed a browser extension that makes them visible:

A screenshot showing the current URL's HTTP status code, displayed through use of a Chrome browser extension.

A web page’s HTTP status code, shown using a Chrome browser extension.

3xx status codes (301, 302, etc.) are a class of status codes called “redirection codes.” They’re returned whenever the server sends back a new resource instead of the requested resource.

In other words, they’re shown when the website page you intended to access redirects you to a different page.

The critical difference between code 301 and code 302 is that the former is used for permanent redirects, whereas the latter is for temporary redirects.

The 301 redirects also pass “link juice,” whereas 302s don’t. That has a significant impact on Search Engine Optimization (SEO).

Uh oh… you’ve just seen an HTTP 302 code pop up. 😬 Now what? 🤷‍♀️ Start with this thorough guide ⤵Click to Tweet

How 302 Redirects Work

When you set up a 302 redirect for a page on your website that’s temporarily unavailable, and a user visits that page, your webserver will respond to the visitor’s browser with a special Location header. This header will indicate the new URL that the browser should redirect the user to instead.

For example, imagine that a user types blog.example.com into their browser URL bar, but the website is configured to redirect it to blogging.example.com.

The server response will include both the 302 status code and the Location: blogging.example.com header. This setting tells the user’s browser to redirect this request to the new URL instead.

Of course, all of this happens automatically and behind the scenes. The user shouldn’t be able to see any of this play out. Instead, their browser should automatically take them to the new resource.

Why HTTP 302 Errors Happen

If something is misconfigured on your website, it might cause 302 codes to be issued in error. If this happens, you may run into problems such as:

  • A page on your website that redirects your visitors elsewhere when it shouldn’t
  • A page on your website that redirects your visitors to the wrong resource
  • The ERR_TOO_MANY_REDIRECTS error (also known as a “redirect loop”)

The last of these issues is the only one that will display an actual error page. If you’re using the Chrome browser, a redirect loop error page will look something like this:

The Chrome ERR_TOO_MANY_REDIRECTS error message, with the text

The Chrome ERR_TOO_MANY_REDIRECTS error message.

On Mozilla Firefox, it looks like this:

The Firefox ERR_TOO_MANY_REDIRECTS error message, with the text

The Firefox ERR_TOO_MANY_REDIRECTS error message.

All of the above problems are caused by some misconfiguration. It may be a plugin conflict, incorrect URL settings, or a misconfigured .htaccess file.

How to Fix the HTTP 302 Error (5 Methods)

Next, we’ll walk you through five troubleshooting methods that can help you figure out what’s causing the problem and fix it.

Before we get started, make sure to perform a complete backup of your website first. That way, if anything goes wrong, you can always revert to the previous version. You can use a WordPress plugin to do this.

1. Determine Whether the Redirects Are Valid

302 responses are usually not errors. Temporarily redirecting users to a different page can be a valid configuration and isn’t usually something that requires fixing.

It’s only an error if your website is responding with 302 codes that it shouldn’t be issuing, or if it’s causing a redirect loop. Therefore, the first step is to double-check which URLs are generating the HTTP 302 codes and determine whether the redirect is appropriate or not.

To do so, you can navigate to the pages on your website you suspect of issuing the 302 error and see for yourself if they behave as expected. If a temporarily unavailable page redirects to the correct resource, it’s appropriately configured.

However, if a page redirects you to the wrong resource or your browser reports a redirect loop by bringing up an ERR_TOO_MANY_REDIRECTS error page, it’s a sign that one (or more) of your redirects isn’t configured quite right.

2. Check Your Plugins

One of the most common causes of 302 errors and redirect loops is plugins.

Some WordPress redirect manager plugins and SEO tools like Yoast SEO manage your website redirects for you and enable you to set up redirect rules:

The Yoast SEO Premium plugin redirect settings page.

The Yoast SEO Premium plugin redirect settings page.

If these rules are misconfigured, or if two plugins conflict, it can cause unexpected issues. Therefore, you’ll need to check each relevant tool that’s installed on your site.

For example, if you’re using the popular 301 Redirects WordPress plugin, you can check the configuration by navigating to Settings > 301 Redirects. Under Redirect Rules, you’ll see a list of all the redirect rules you’ve set up:

The Redirect Rules settings page for the 301 Redirects WordPress plugin.

The Redirect Rules settings page for the 301 Redirects WordPress plugin.

Check all the 302 redirects listed here, and make sure they’re all correct.

You’ll also want to ensure that you haven’t set up anything in a way that could cause a redirect loop. For example, if Page-A is set to redirect to Page-B, but Page-B is also set to redirect to Page-A, this will cause an error.

If you have multiple redirect manager plugins and you’re not sure which one is causing the issue, you can try deactivating them one by one from the WordPress Plugins page (be sure to make a backup first):

The Plugins page in the WordPress admin dashboard.

The Plugins page in the WordPress admin dashboard.

After deactivating each plugin, try revisiting the problem URL to see if the 302 error persists.

If the problem is suddenly fixed, you’ll know which plugin was causing the issue, and you can then choose to troubleshoot further or remove it from your site.

3. Ensure That Your WordPress URL Settings Are Configured Correctly

Another common cause of the HTTP 302 error is a misconfiguration in the WordPress URL settings.

To check this, navigate to Settings > General in your WordPress dashboard. Here, you should see a WordPress Address (URL) field and a Site Address (URL) field:

The General Settings page in WordPress with highlighted Address fields.

The General Settings page in WordPress.

In most cases, the URLs in both of these fields should match. Make sure they’re both the same, including the “www” portion (or lack thereof) before the domain name.

If they don’t match, update the settings, then check the URL of the page issuing the HTTP 302 error to see if it’s fixed.

4. Check Your Server Configuration

A misconfigured server can also sometimes cause 302 redirect errors. Therefore, the next step is to check your server configuration.

If your host uses the Apache webserver, you can do this by checking your.htaccess file.

First, connect to your site’s server via a control dashboard like cPanel or an FTP client. Then navigate to the root directory of your site — the same place as the wp-admin and wp-content folders — and find the .htaccess file:

A screenshot of an .htaccess file highlighted in a website's root directory folder.

The .htaccess file in the site’s root.

If you aren’t finding the .htaccess file here (and you’re sure on an Apache server), you may need to tell FileZilla to show hidden files before it’ll appear in the file list.

Next, open the file in your favorite text editor. It should look something like this:

A screenshot of an .htaccess file open in a text editor, with RewriteXXX directives highlighted within the code.

RewriteXXX directives in an .htaccess file.

Now, we’re going to look for RewriteXXX directives (the highlighted elements above). Without getting too technical, RewriteCond and RewriteRule directives are used to perform redirections from one URL to another.

The RewriteCond directive specifies the URL you want to redirect the visitor away from, while the RewriteRule directive specifies the URL you want to redirect them to. Here’s an example:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^website.com$
RewriteRule ^(.*)$ http://www.temporary-website.com/$1 [R=302]

The flag at the end, “[R=302]”, tells the browser that this is a temporary 302 redirect.

If you notice any RewriteXXX combinations similar to the above in your .htaccess file that shouldn’t be there, you can comment them out, save the changes, and reload the problem web page to see if it resolves the issue.

Just make sure to download and save a spare copy of your .htaccess file before you make any changes in case something goes wrong.

5. Speak to Your Web Host

If you’ve tried all of the above methods and you’re still having trouble, the next step is to speak to your web host.

Troubleshooting a 302 code error beyond this point requires a lot of technical know-how. Therefore, unless you’re a professional developer, it’s probably best to get help from an expert.

At Kinsta, we take support seriously. Our team of experts is always on-hand to help you resolve issues like this whenever they arise:

Screenshot of the Kinsta Support page.

The Kinsta Support page.

We’re available 24/7. All you have to do is log in to your MyKinsta account and contact us via live chat to connect with a support engineer who can help in real-time.

Don’t let HTTP 302 codes slow your roll. 🙅‍♀️ Learn how to resolve them with these 5 troubleshooting tips 💥Click to Tweet

Summary

HTTP 302 status codes are a completely normal way to redirect your website visitors. However, they should only be used when the resource page is temporarily unavailable.

Suppose your website is issuing 302 codes in error or causing redirect loops. In that case, it’s vital to fix this problem as soon as possible, or it may negatively impact your SEO and conversions.

You can follow these five steps to fix HTTP 302 errors on your website:

  1. Determine whether the redirects are appropriate or not by examining the URLs that are issuing the 302 redirects.
  2. Check your plugins to make sure any redirect settings are valid.
  3. Ensure that your WordPress URL settings are configured correctly.
  4. Check your server configuration by looking for incorrect RewriteXXX directives in your .htaccess file (Apache servers only).
  5. Speak to your web host for further technical support if the problem persists.

Do you have any questions left about the HTTP 302 error? Let us know in the comments section.

I have an Asp .net core MVC app. Which connects to an Identity Server 4 for authentication. Hosted in a docker swarm

MVC app is hosted on https://XXXXXXX

ConfigurServies

services.AddAuthentication(options =>
        {
            options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
        })
             .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
            {
                //options.DataProtectionProvider = DataProtectionProvider.Create(new DirectoryInfo(@"C:temp-keys"));
                // when the identity has been created from the data we receive,
                // persist it with this authentication scheme, hence in a cookie
                options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                // Identity server endpoint
                options.Authority = settingsSetup.IdentityServerEndpoint;

                // Client id to login with
                options.ClientId = settingsSetup.ClientId;
                // Client secret.
                options.ClientSecret = settingsSetup.Secret;

                // Scope of our API
                options.Scope.Add("testapi");
                options.Scope.Add("devconsole");
                // adding offline_access to get a refresh token
                options.Scope.Add("offline_access");

                options.ResponseType = "code id_token";
                options.SaveTokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;
            });

When I try to run the app I get a redirect uri miss match error.

Invalid redirect_uri: http://developerconsole.XXXXX.io/signin-oidc
{
  "ClientId": "BB1D2DA8-D7E4-4AF5-94FA-19EAD6B7D711.apps.XXXXX.biz",
  "ClientName": "Developer Console",
  "AllowedRedirectUris": [
    "http://localhost:55000/signin-oidc",
    "http://localhost:55000/auth.html",
    "http://localhost:55000/auth-silent.html"
    "https://developerconsole.XXXXX.io/signin-oidc"
  ],
  "SubjectId": "21379983",
  "RequestedScopes": "",
  "Raw": {
    "client_id": "BB1D2DA8-D7E4-4AF5-94FA-19EAD6B7D711.apps.XXXXX.biz",
    "redirect_uri": "http://developerconsole.XXXXX.io/signin-oidc",
    "response_type": "code id_token",
    "scope": "openid profile testapi devconsole offline_access",
    "response_mode": "form_post",
    "nonce": "636625889658410682.MjNlMmQwNjgtZmY0MC00MmVkLWFiNmMtN2M2YmQ5YTM5ZTQ3NjFiYzI2ZjktZWM0Yi00NDk3LTk1ZWMtNjJkYjViMDYwMTJm",
    "state": "CfDJ8Pwa8A3ipXlKtuyxNMpMxAz5QUFmdSunRKdlKS9sS390AKp8gIUZShQUMMCkFAhYLytitgsXUBgwlQDJaJvtHFqzHygLCPwS8Jab6IJzhpry90qS51E1y_eRlppamRDOzYDZ6fcDFzWV1U43BTP2B6pnPTSLNcZRaooyGBXtNokeUqOJ--u-_MOQB8Bw3n2cRyV4kisHNkslD1Gsi2wn1Cx6aTVlqzw_pxHelAXm1P8FyDJpD7G0azFgKgpQF0DRJtC5penRJQzHIHvQN8v4ECGeuSD1zlyfJYClLO2r6kY_R2OYqtBkV0r_SNc9h7xUYmnVaHKQzYqVc_mJO4iLLSMTZrBUICZWR8c4PZw0Os3N",
    "x-client-SKU": "ID_NET",
    "x-client-ver": "2.1.4.0"
  }
}

The error is coming because i have "https://developerconsole.XXXXX.io/signin-oidc" as a redirect uri and not "http://developerconsole.XXXXX.io/signin-oidc" I dont want to add HTTP redirect uris.

Why is my app building the redirect uri has http and not https?

If i do add the HTTP on i am getting an annoying Correlation error. which i think is due to the fact that its being returned by the server as https since the server automatically converts http to https.

An unhandled exception occurred while processing the request.
Exception: Correlation failed.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler+d__12.MoveNext()

Stack Query Cookies Headers Exception: Correlation failed.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler+d__12.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+d__6.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware+d__7.MoveNext()

I probably dont need to mention this works fine on localhost :/

Introduction

Redirection is the forwarding of one URL to another URL. Redirects are useful when moving content from one page to another or changing a website’s permalink structure.

The ERR_TOO_MANY_REDIRECTS error occurs when the browser is redirected to a different URL, which in turn points back to the original one, creating a redirection loop. There are several possible reasons for the error and several available fixes.

In this tutorial, you will learn what causes the ERR_TOO_MANY_REDIRECTS error and how to fix it.

How to troubleshoot the ERR_TOO_MANY_REDIRECTS error.

What Does «Too Many Redirects» Mean?

The ERR_TOO_MANY_REDIRECTS error indicates that the browser is stuck in an infinite redirection loop. An infinite redirection loop happens when you visit a URL pointing to another URL, which points back to the first one.

After several redirects, the browser breaks the redirection loop and displays the «too many redirects» error message. Different browsers warn users about the error in different ways. Most browsers display a «too many redirects» warning and suggest how to fix the error.

Below are several variations of the error, depending on the browser:

Too Many Redirects Chrome

Google Chrome states that the page isn’t working and suggests clearing the cookies might help.

The ERR_TOO_MANY_REDIRECTS error in Google Chrome.

Too Many Redirects Firefox

Firefox explains that the page isn’t redirecting properly and states that cookies might be causing the issue.

The ERR_TOO_MANY_REDIRECTS error in Firefox.

Too Many Redirects Safari

Safari explains it cannot open the page because of too many redirects.

The ERR_TOO_MANY_REDIRECTS error in Safari.

Too Many Redirects Edge

Microsoft Edge states that the domain redirected you too many times and suggests clearing the cookies to fix the issue.

The ERR_TOO_MANY_REDIRECTS error in Microsoft Edge.

Most browsers suggest that cookies might be the reason for the ERR_TOO_MANY_REDIRECTS error. The following section explains this and other possible causes for the error.

There are several possible triggers for the redirection loop. The following list includes the most common causes of a redirection loop in a WordPress website:

  • Issues with the browser’s cache/cookies. The browser may be caching faulty data that leads to the redirection error.
  • The browser extensions. Sometimes a browser extension can cause a redirection error.
  • The website’s URL. A misconfiguration in URL settings can cause the redirection error.
  • WordPress cache. The website cache could be causing a redirect loop.
  • SSL certificate. A misconfigured security protocol (SSL certificate) can cause a redirect loop.
  • Third-party services and plugins. A faulty WordPress plugin could be causing the redirection loop.
  • The site’s .htaccess file. A user-level configuration file WordPress uses to rewrite URLs to the index.php file. The website URL is defined as a value in the database.

How to Fix Too Many Redirects — Troubleshooting

Before fixing the «too many redirects error,» ensure that the page is down for everyone, not just for you. Many online free tools identify redirect loops. Some of the tools are:

  • Redirect Checker
  • HTTP status
  • WhereGoes

The solution to the «too many redirects» error depends on whether you own the website in question or not. If you don’t own the website, follow our instructions below to clear browser cookies and cache, or try accessing the site in incognito mode.

If you are the website owner and get a «too many redirects» error, further actions are available to fix the site’s redirection loop.

Clear Cookies and Cache on Your Browser

Clearing the browser cache and cookies is a quick and straightforward solution worth trying before diving into more complicated troubleshooting.

Clear Cache and Cookies in Chrome

Follow the steps below to clear the cache and cookies on a Chrome browser:

1. In Chrome, press Ctrl + Shift + Delete to open the Clear browsing data window.

2. In the Time range dropdown menu, select All time.

Selecting the time range for clearing browsing data in Chrome.

3. Check the following boxes:

  • Cookies and other site data.
  • Cached images and files.

Uncheck any other boxes.

4. Click the Clear data button to clear the cache.

Clearing the browsing data in Chrome.

5. Revisit the webpage to see if the error is gone.

Clear Cache and Cookies in Firefox

Follow the steps below to clear the cache and cookies on a Firefox browser:

1. In Firefox, press Ctrl + Shift + Delete to open the Clear Recent History window in Firefox.

2. In the Time range to clear dropdown menu, select Everything.

Selecting the time range for clearing browsing data in Firefox.

3. Check the following boxes:

  • Cookies.
  • Cache.

Uncheck any other boxes.

4. Click the OK button to clear the cache and cookies.

Clearing the browsing data in Firefox.

5. Revisit the webpage to see if the error is gone.

Clear Cache and Cookies in Edge

Follow the steps below to clear the cache and cookies on a Microsoft Edge browser:

1. In Edge, press Ctrl + Shift + Delete to open the Clear browsing data window.

2. In the Time range dropdown menu, select All time.

Selecting the time range for clearing browsing data in Edge.

3. Check the following boxes:

  • Cookies and other site data.
  • Cached images and files.

Uncheck any other boxes.

4. Click the Clear now button to clear the cache and cookies and revisit the webpage to see if the error is gone.

Clearing the browsing data in Edge.

Clear Cache and Cookies in Safari

Follow the steps below to clear the cache and cookies on a Safari browser:

1. In Safari, press CMD + , to open the Preferences window.

2. In the Privacy tab, click the Manage Website Data button.

Managing website data in Safari.

3. In the popup window, click the Remove All button to delete all cache and cookies data. Alternatively, find only the cache and cookie data for the website displaying the error and click Remove.

Clearing cookies and cache in Safari.

4. Click Done and revisit the webpage to see if the error is gone.

Check Website in Incognito Without Extensions

Ensure that the extensions the browser is using aren’t causing the error by visiting the website in incognito mode (private browsing). Follow the steps below to enter incognito mode on different browsers:

Incognito Browsing with Chrome

1. Open the Chrome browser and press Ctrl + Shift + N to open a new Incognito instance without browser extensions.

Browsing incognito in Chrome.

2. Visit the website to see if the «too many redirects» error is gone.

InPrivate Browsing with Edge

1. Open Microsoft Edge and press Ctrl + Shift + N to open a new InPrivate instance without extensions.

Browsing incognito in Edge.

2. Visit the website to see if the «too many redirects» error is gone.

Private Browsing with Firefox

1. Open Firefox and press Ctrl + Shift + P to start a new Private instance.

Browsing incognito in Firefox.

2. Visit the website to see if the «too many redirects» error is gone.

Private Browsing with Safari

1. Open a Private window in Safari by pressing CMD + Shift + N.

Browsing incognito in Safari.

2. Visit the website to see if the «too many redirects» error is gone.

Clear Website Cache

If you own the site that’s stuck in a redirect loop and the steps above don’t help, try clearing the cache and cookies in WordPress. Access the WordPress admin dashboard and clear the cache using the caching plugins you have installed.

Note: If you cannot access your WP dashboard, use an FTP client such as FileZilla and empty the contents of the wp-content/cache directory to clear the website cache.

Some of the most popular caching plugins that speed up a WordPress site are WP Rocket and W3 Total Cache. Follow the steps below to clear the cache in the two plugins:

WP Rocket

1. Navigate to the WordPress Admin Dashboard.

2. Hover over Settings and click WP Rocket.

Configuring WP Rocket settings in WordPress.

3. Under Quick Actions, find the Remove all cached files section and click CLEAR CACHE.

Clearing WP Rocket cache in WordPress.

W3 Total Cache

1. Navigate to the WordPress Admin Dashboard.

2. Hover over Performance and click Dashboard.

3. Click Empty All Caches to delete the website cache.

Clearing the cache in W3 Total Cache.

Note: If you are using a different caching plugin, try Googling for instructions on deleting cache from that specific plugin.

Clear Server Cache

If the steps above didn’t resolve the «too many redirects» error, perhaps the issue is incorrect or outdated cache on the server-side.

If you can’t access the WordPress Admin Dashboard, the solution is to use the control panel tools of your WordPress host to clear the cache on the website. Clearing the server cache depends on the hosting provider.

Most WordPress hosts offer one-click solutions for clearing the server cache, so contact your hosting provider for further instructions.

Check All Website Versions

The «too many redirects» error can result from improper WordPress site settings. For example, if the home URL and website URL don’t match, the visitors get stuck in a redirect loop. The two fields can get changed when migrating hosts or changing domains.

To fix mismatched URLs, ensure that both URL fields are set correctly. Follow the steps below:

1. Navigate to the WordPress Admin Dashboard.

2. Click the Settings option and locate the fields labeled WordPress Address (URL) and Site Address (URL).

Configuring site settings in WordPress.

3. Make sure that the two fields are identical, set correctly, and not pointing at a wrong domain. This includes both www, http, and https prefixes.

Note: A common mistake is that the URL fields don’t contain the same prefix as the rest of the site. Make sure to use the correct prefix, www or no www. Also, check for any whitespaces at the URL’s beginning or end.

If the redirect loop denies you access to the WordPress Admin Dashboard, use an FTP client (such as FileZilla) to edit the wp-config.php file and define the URL values manually.

Follow the steps below to edit the wp-config.php file:

Warning: Be careful when modifying the wp-config.php file as it contains information WordPress uses to connect to the database. Always make a backup before saving any changes.

1. In FileZilla or a different FTP client, navigate to public_html directory and look for the wp-config.php file.

2. Right-click the file and select Edit.

3. In the file, add the following lines above the /* That's all, stop editing! Happy publishing. */ line:

define('WP_HOME','https://yoursite.com');
define('WP_SITEURL','https://yoursite.com');

For https://yoursite.com, enter your site address.

Editing site settings in wp-config.php.

4. Save the modified file and upload it to the website.

5. Reload the site to check if the problem has been solved.

Check SSL

While acquiring an SSL certificate is a smart move that keeps your site secure, not configuring it properly can cause a redirect loop. Using a redirect mapper tool, determine if the HTTPS settings are causing the redirect error.

The tool is similar to the redirect check tools, but it only shows results for www to non-www redirects and http to https redirects. If there are multiple redirects listed between the http and https versions of the site, it might be the source of the redirect loop.

Change the security protocol back to its default settings and refresh the website. If the error message is still there, try resetting the SSL certificate altogether.

Check Plugins

Search for any plugin conflicts on the website. This issue occurs when the code from two plugins, a plugin and a theme, or a plugin and the WordPress core interfere with each other. Start by disabling all the plugins to see if the error message goes away.

Disable the active plugins via the WordPress Admin Dashboard. Follow the steps below:

1. Log in to the WordPress Admin Dashboard.

2. Click Plugins and select Installed Plugins.

3. Check the Select All box to select all plugins.

Selecting all active plugins in WordPress.

4. Choose Deactivate from the Bulk actions dropdown menu and click Apply.

Deactivating all plugins in WordPress to troubleshoot the ERR_TOO_MANY_REDIRECTS error.

If you can’t access the WordPress Admin Dashboard, use an FTP client to disable them. Disable the plugins by renaming the wp-content/plugin directory (e.g., to plugins backup).

If the plugins aren’t causing the «too many redirects» error, follow the steps above to reactivate them.

Check Server Config Files

If the redirect error persists, the last option is to check if the server configuration files are causing the error.

.htaccess

The .htaccess file has a significant role in controlling page redirects, so an issue with the file can cause problems with site loading. If the .htaccess file contains redirects, it could conflict with a code or database configuration, or addresses could be pointing back to one another.

Warning: Take caution when editing the .htaccess file as its configurations affect the web server’s behavior. The file is usually hidden as a precaution, but you can find it in the public_html directory by checking the FTP client’s Show Hidden Files option. Always make a backup before editing the file. Check out our article on mod_rewrite to learn more.

Follow our tutorial to edit or create a new .htaccess file on WordPress, or set up the .htaccess file on Apache.

If creating a new .htaccess file hasn’t solved the redirection error, restore the backup file and try the last fix.

Nginx Config

If your website uses Nginx, the the nginx.conf file contains any redirects and the directives that define how the site runs.

The general syntax for redirecting http to https in the nginx.conf file is:

server { listen 80; server_name mydomain.com www.mydomain.com; return 301 https://$server_name$request_uri; }

For mydomain.com and www.mydomain.com, enter your site address. The previous server block should define the $server_name variable. Ensure that the redirects are properly set and that they match the rest of the site.

Note: The nginx.conf file can vary depending on the hosting provider. If the settings are different in your configuration file, we recommend reaching out to your host. They can check the file for any misconfigurations that might be causing a redirect loop on the website.

Conclusion

After following the steps outlined in this guide, you should have successfully resolved the ERR_TOO_MANY_REDIRECTS error on your website. Next, read up on 403 Forbidden errors and how to fix them, learn to resolve the «Temporary failure in name resolution» error, or fix the 500 Internal Server Error in WordPress.

Здравствуйте, уважаемые друзья и гости блога! Сегодня пойдет речь о такой странной вещи на сайте, как ошибка 301 Moved Permanently (переехал навсегда) или по другому редирект 301.

Думаю. что все с таким сталкивались, а некоторые даже использовали данную “ошибку 301” на своих сайтах. Но не все знают для чего эта ошибка 301 или иначе редирект 301 нужна на сайте? Для чего он, 301 редирект, используется?!

Вот сейчас мы с вами и займемся разбором этого вопроса во всех его подробностях и нюансах …

Как Вы уже наверное догадались по переводу слов “moved permanently” – это дословно, что сайт или отдельная его страница “переехал навсегда” по адресу на который Вас перекинул ваш браузер. Тут надеюсь все понятно и ясно без лишних пояснений!

Но возникает вопрос. Для чего это сделано вебмастером этого сайта? Почему он поставил редирект 301 и у нас с вами выскакивает иногда 301 ошибка? А все просто! Ошибка 301 появляется, когда сервер перебрасывает нас с уже не работающего сайта на страницу сделанную специально для перенаправления пользователя на рабочий сайт, но просто с некоторой задержкой или вообще на этой странице нужно самостоятельно перейти по ссылке. Вот это в двух словах об ошибке 301.

Теперь самый важный момент, зачем же все таки нужен редирект 301 на сайте …

Редирект 301 и для чего он нужен?

Есть несколько причин у вебмастера, чтобы использовать редирект 301. Вот они:

  • Причина первая: Склейка домена с www и без www. При этом все seo показатели сайта и его ссылочный вес будут совмещены и не будут отличаться друг от друга.
  • Причина вторая: Если вдруг пришлось сменить домен для сайта. Тогда применяется редирект 301 и он как раз перенаправляет посетителя сайта и поисковые роботы на рабочий домен сайта. Это также позволит вам сохранить все seo показатели вашего переехавшего сайта, как тИЦ, PR, так и своих посетителей.
  • Причина третья: Использование редиректа 301 при переносе отдельной страницы сайта на другой ресурс. Бывают и такие случаи, когда это нужно сделать.
  • Причина четвертая: Например у Вас есть сайт, где высокий тИЦ и PR и много посетителей. И еще есть другой сайт, который нужно немного пропиарить и прибавить к нему посещения. Тогда Вы просто на просто перенаправляете при помощи того же редирект 301, с одной страницы высоко посещаемого сайта на страницу более низко посещаемого сайта и тем самым выигрываете, добавив ему веса ссылочной массы и соответственно посещений.

Вот основные причины для использования редирект 301 или ошибка 301 Moved Permanently.

Теперь давайте узнаем, как правильно использовать редирект 301 на своем сайте и как настроить его через файл htaccess …

301 редирект и файл htaccess – как правильно настроить?

Как я вам уже говорил выше – 301 редирект это переадресация посетителя и поискового робота на сайт или отдельно взятую страницу сайта на URL адрес отличный от первоначально запрошенного в браузере.

Для чего это нужно мы с вами также уже разобрали. Но как же это сделать правильно на нашем сайте используя файл htaccess? Сейчас я вам все подробно объясню и приведу примеры внесения изменений в файл htaccess для вашего сайта!

  • Перенаправление домена с www на без-www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

или вот более понятный синтаксис:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
  •  301 редирект запросов без-www на домен с www префиксом
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Альтернативный вариант:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
  •  301 редирект старого домена на новый в фале htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
  •  Если вам нужно, чтобы вместо rewrite.htm загружался файл rewrite.html, добавьте в файл htaccess вот это:
RewriteEngine   on
RewriteBase     /
RewriteRule     ^rewrite.htm$  rewrite.html [R=permanent]
  •  Чтобы заменить все .htm файлы на .html внесите в файл htaccess:
RewriteEngine  on
RewriteBase     /
RewriteRule     ^(.*).htm$  $1.html [R=permanent]
  •  Варианты, когда не нужно использовать 301 редирект на вашем сайте:
  • Если реализация 301 редиректа невозможна или она займет неоправданно много времени.
  • Если контент вашего сайта дублируется на двух или нескольких страницах, но эти страницы должны быть доступны в поиске пользователю ввиду некоторых отличий (на пример, выбор какого-то товара).
  • Если одна страница имеет несколько URL адресов (сортировка каталога товаров по различным категориям или критериям).
  • Для кросс-доменов. Это, когда контент сайта на двух URL адресах дублируется, но он должен быть доступен на каждом из двух или нескольких доменах.

Этот материал посвящен выходу 301-ой статьи на моем блоге!

Может вам интересно узнать, что такое ошибка 503 и как ее устранить?

На этом пока все. Всем удачи и благополучия!

При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Рассмотрим более подробно, как происходит настройка редиректа 301.

Что такое переадресация 301

Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.

Настроить код состояния HTTP 301 можно разными способами:

  • с помощью HTML и PHP;

  • через панель управления или плагины соответствующей CMS;

  • при помощи специальных скриптов (программ);

  • на уровне хостинг-провайдера;

  • внесением соответствующих записей в файлы .htaccess для сервера Apache или web.config для IIS.

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

Редирект

Альтернативные методы переадресации

  • Редирект 302. Применяется в случае временной переадресации с одного url на другой. При его использовании поисковая система индексирует все доступные версии сайта или страницы. Объединения ссылочного веса и внутренних метрик на приоритетном ресурсе не происходит. 
  • 307 Temporary Redirect рекомендуется применять в исключительных случаях. Например, при техническом обслуживании сайта, когда он недоступен некоторое время. 
  • Обновления Meta Refresh выполняют переадресацию не на уровне сервера, а непосредственно на сайте. Пользователь сталкивается с временной задержкой (обычно около пяти секунд), после чего для перехода на нужную страницу должен принудительно запустить определенную команду. Этот метод часто приводит к падению посетительского интереса и проседанию поисковых индексов.
  • Редирект rel=«canonical». Позволяет сохранить доступ посетителям ресурса к контенту дублирующихся страниц. При этом для поисковиков наличие команды canonical на одной из страниц говорит о том, что только она подлежит индексации в поиске.

В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи. 

Не рекомендуется использовать постоянный редирект при временном переносе сайта или наличии серьезных проблем со старым доменным именем. Если адрес забанен или попал под поисковую фильтрацию, смена дислокации с применением переадресации не поможет избавиться от этих ограничений. 

Редирект 301

В каких случаях используется постоянный редирект 301

  1. Смена доменного имени, перенос сайта. Необходимо произвести тотальную настройку переадресации со старого адреса на новый, чтобы все без исключения запросы к old_site.ru перенаправлялись на new_site.ru.

  2. Изменение написания url определенных страниц в целях SEO-продвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress.

  3. Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru.

  4. Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс. 

  5. Исключение дублирующихся страниц из индекса. 

  6. Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал.

  7. Удаление ранее существовавшей страницы. В этом случае пользователи обычно видят ошибку 404. Большое количество таких сообщений негативно воспринимается как пользователями, так и поисковиками.

  8. Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.

Создание постоянной переадресации 301 через настройки и плагины CMS

В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:

  • Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.

  • Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.

  • Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».

  • Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.

Настроить Permanent Redirect 301 в Вордпресс можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключиться к нему, потребуется использовать FTP-клиент. Сама кодировка производится по общим правилам настройки переадресации в .htaccess.

Чтобы настроить 301 редирект в CMS OpenCart в файле .htaccess необходимо прописать:

RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$

RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]

Для Битрикс кодировка будет выглядеть следующим образом:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC]

RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]

В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.

.htaccess

С конструкторами сайтов все не так однозначно. Например, один из наиболее популярных CMS-конструкторов WIX не предоставляет возможности создания файла .htaccess.

Настройка htaccess

Но настроить редирект 301 довольно просто в базовом редакторе.

Настройка 301 редирект в .htaccess

Файл с расширением .htaccess – это дополнительный конфигурационный файл web-сервера Apache. Его используют для настройки веб-сервера, а также для обработки различных URL-адресов.

Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трех директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки.

Найти файл можно через панель управления хостинга либо использовать FTP-клиент. При любом варианте нужно включить отображение скрытых файлов.

Предварительная подготовка

  • Для создания 301 редиректа перейдите в панель управления вашего сайта.

  • Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html, если используете WordPress). Если файл отсутствует, создайте его.

  • Рекомендуем все условия редирект записывать в блоке IfModule, дабы избежать ошибок при выполнении файла htaccess.

<IfModule mod_rewrite.c>
</IfModule>
  • Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.

  • Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].

Разберем наиболее распространенные варианты создания 301 редиректа через .htaccess.

Склейка зеркал сайта (www / без www)

Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.

В поисковой системе сайт по одному адресу будет проиндексирован, а по второму адресу зафиксирован как дубль, что может повлиять на продвижение ресурса. Для избегания дублей необходимо сделать так называемую «склейку» сайта, то есть прописать 301 редирект в .htaccess.

Если изначально в индекс поисковой системы попала версия «с www», в файл .htaccess добавляется редирект на «без www»:

RewriteCond %{HTTP_HOST} ^www.name.site$ [NC]

RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]

Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:

RewriteCond %{HTTP_HOST} ^v name.site$ [NC]

RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L]

Редирект с http на https для всего сайта

В случае перехода на защищенный протокол https для всего сайта, необходимо настроить перенаправление с http на https. Для этого в файл .htaccess добавьте:

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Если данная конструкция не сработает, попробуйте другой вариант:

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]

Если редирект не работает и в этом случае, попробуйте такой вариант:

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{REQUEST_URI} =/page.php

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

В результате пройдет перенаправление на https всех пользователей и поисковых систем.

Постранично

Бывают случаи, когда необходимо создать редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} !^/page.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Для одной страницы

Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} =/page.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Редирект сайта с https на http

Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:

RewriteCond %{SERVER_PORT} ^443$ [OR]

RewriteCond %{HTTP} =on

RewriteRule ^(.*)$ https://name.site/$1 [R=301,L]

Изменение домена

В том случае. если необходимо перейти на другой домен, при этом сохранив SEO-позиции, в файл .htaccess прописывают следующее:

RewriteCond %{HTTP_HOST} ^www.old_name.ru$ [NC]

RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^old_name.ru$ [NC]

RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]

Редирект на страницу с другим url (без параметров)

Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв вес страниц. В этом случае в файл .htaccess прописывают следующее:

RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L]

Редирект для url (с параметрами)

Если адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:

RewriteCond %{QUERY_STRING} section=1

RewriteRule ^index.php http://name.site/articles.php? [R=301,L]

Редирект с index.php на главную страницу

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/

RewriteRule ^index.php$ http://name.site/ [R=301,L]

Редирект со страниц со слешем на без слеша (для всего сайта)

Для избегания дублей в файле .htaccess используют следующую конструкцию:

RewriteCond %{REQUEST_URI} !?

RewriteCond %{REQUEST_URI} !&

RewriteCond %{REQUEST_URI} !=

RewriteCond %{REQUEST_URI} !.

RewriteCond %{REQUEST_URI} ![^/]$

RewriteRule ^(.*)/$ /$1 [R=301,L]

Или более короткий вариант:

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} ^(.+)/$

RewriteRule ^(.+)/$ /$1 [R=301,L]

Редирект со страниц без слеша на слеш (для всего сайта)

Обратный вариант применяется, когда нужно использовать адреса со слешем.

RewriteCond %{REQUEST_URI} !?

RewriteCond %{REQUEST_URI} !&

RewriteCond %{REQUEST_URI} !=

RewriteCond %{REQUEST_URI} !.

RewriteCond %{REQUEST_URI} !/$

RewriteRule ^(.*[^/])$ /$1/ [R=301,L]

301 редирект с 404 Not Found

Код 404 Not Found (страница не найдена) присваивается удаленной или несуществующей странице на сайте. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса при виде ошибки.

301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную:

ErrorDocument 404 http://www.site.com/301.html

Однако делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.

Финальный вид файла .htaccess

Пример файла htaccess, после добавления в него редиректов:

Options -Indexes

ErrorDocument 404 /404.php

php_flag register_globals off

php_value pcre.recursion_limit 1000

#Условия 301 редиректа


<IfModule mod_rewrite.c>

RewriteEngine On

# склейка зеркал


RewriteCond %{HTTP_HOST} ^my_site.ru

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^my_site.ru

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.my_site.ru

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.my_site.ru$ [NC]

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.my_site.ru

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]

# без слеша


RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} ^(.+)/$

RewriteRule ^(.+)/$ /$1 [R=301,L]

</IfModule>

php_value default_charset utf-8

AddType 'text/html; charset=utf-8' .html .htm .shtml

Синтаксис для регулярных выражений в .htaccess

.

точка заменяет произвольный символ

[abc]

обозначает перечень знаков, совпадающих с буквами a, b, или с

[^abc]

список символов вне указанного диапазона (кроме a, b, с)

*

указывает на то, что предыдущий знак может повторяться 0 или больше раз

[abc]*

команда найдет идущие подряд символы из заданного набора

[^abc]*

приводит к противоположному эффекту

.*

заменяет любой набор символов

«.*»

ищет все подстроки между кавычками

^

начало строки (когда используется в начале выражения)

$

означает конец строки

w

цифра, буква или подчеркивание _

d

заменяет любую цифру

D

может заменить любой знак, кроме цифры

[0-9]

для замены любой цифры

[a-z]

для всех букв от a до z в нижнем регистре

[A-Z]

для каждой буквы от A до Z в верхнем регистре

[a-zA-Z]

любая буква от a до Z во всех регистрах

[a-Z]

аналогично

Важно учитывать, что настройка редиректа путем редактирования файла .htaccess  доступна исключительно для веб-серверов Apache.

Другие способы создания переадресации 301

Через PHP

Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:

if($_SERVER['REQUEST_URI'] == "/index.php") {

 header("Location: /",TRUE,301);

 exit();

}

(в первой строке укажите старый url, а во второй — новый)

Второй способ — перенаправление при помощи отправки заголовков (скрипта):

<?php

  header("HTTP/1.1 301 Moved Permanently");

  header("Location: http://www.newdomain.ru/newdir/newpage.htm");

  exit();

?>

ASP-редирект

<%@ Language=VBScript %>

<%

Response.Status="301 Moved Permanently"

Response.AddHeader "Location", "http://www.new-url.com"

response.end

%>

ASP.NET редирект

Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:

<script runat="server">

  private void Page_Load(object sender, System.EventArgs e)

  {

    Response.Status = "301 Moved Permanently";

    Response.AddHeader("Location","http://www.new-url.com");

  }

</script>

ColdFusion редирект

<.cfheader statuscode="301″ statustext="Moved permanently">

<.cfheader name="Location" value="http://www.new-url.com">

JSP (Java) редирект

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

<script type="text/javascript" src="redirect.js"></script>

<script type="text/javascript">

  location="https://yandex.ru";

</script>

CGI-скрипт на PERL

$q = new CGI;

print $q->redirect("http://www.new-url.com/");

Ruby on Rails

def old_action

headers["Status"] = "301 Moved Permanently"

redirect_to "http://www.new-url.com/"

end

Редирект в Nginx

if ($host = 'www.domain.com' ) {

  rewrite ^(.*)$ http://domain.com$1 permanent;

}

HTML-редирект

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

<meta http-equiv="refresh" content="5;https://livepage.pro">

Если поставить значение 0 вместо 5, то переадресация на https://livepage.pro произойдет моментально.

Однако для больших сайтов HTML-перенаправление делать сложно и затратно по времени, поэтому лучше отдать предпочтение другому варианту.

Редирект 301 в панелях управления сервера

Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.

Cpanel

Как сделать 301 редирект - Cpanel

Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:

  • В строке «Тип» выбрать «Постоянный 301».

  • В строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru).

  • В строке «Перенаправляет на» указать для домена адрес http://example.ru.

  • В блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www».

  • Сохранить изменения кликом на «Добавить».

ISPmanager

Как сделать 301 редирект в ISPManager

В этой панели можно вручную править файлы nginx.config или .htaccess, но есть и встроенный механизм переадресации. Например, для настройки редиректа на https/http нужно снять галочку с соответствующего пункта в разделе «WWW-домены».

Автоматическое создание переадресации

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

  • Seomagnifier — 301 для www;

  • 301 Redirect Code Generator Tool — для доменов и страниц;

  • Generate .htaccess— для страниц, разделов сайтов, доменов.

Проверка корректности настроек 301 редиректа

Самый простой способ проверки переадресации – ручное тестирование. Для этого необходимо вставить в адресную строку браузера url сайта или страницы, с которой настроено перенаправление. Если при открытии будет доступен ресурс, на который настроен редирект, то переадресация выполняется правильно.

Для автоматической проверки можно воспользоваться специальными сервисами:

  • Redirect Checker, bertal.ru или Header Checker Tool для тестирования отдельных страниц;

  • программой Screaming Frog Seo Spider, способной просканировать весь сайт.

Существует ряд ошибок, которые следует избегать при настройке редирект 301:

  • использование перенаправлений между страницами сайта без изменения их url в ссылках;

  • установка временной переадресации вместо постоянной;

  • неправильный выбор типа редиректа;

  • перенаправление файла robots.txt;

  • непонимание разницы между rel=canonical и кодом 301;

  • редирект на нерелевантный контент;

  • переадресация, которая не приводит к 200-й странице.

Стоит отметить проблему создания цепочки ссылок, которая может привести к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS». Наиболее распространенные причины возникновения такого бага – неправильная настройка в процессе создания переадресации, вирусная атака, слишком длинная цепочка редиректов. Не рекомендуется настраивать редирект, содержащий более пяти адресов. Оптимальной является прямая переадресация со старого на новый url.

Заключение

Использование редиректа 301– очень важный способ поисковой и пользовательской оптимизации веб-ресурса. Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций.

Инструментов для настройки корректной работы Permanent Redirect 301 существует достаточно много. Наиболее удобный и правильный – внесение записей в файл .htaccess. Недостаток этого метода в том, что он доступен только для веб-серверов Apache. При использовании IIS придется настраивать web.config. Для создания сложных правил переадресации более всего подходит PHP, но в этом случае без помощи программиста не обойтись. Еще одним вариантом настройки 301 редиректа может быть обращение к хостинг-провайдеру с целью подключения услуги web-форвардинга.

What is redirection?

Redirection is a way of forwarding the user to the URL that is different from the one they initially clicked on. Down below some of the most common types of redirection are listed.

how to do a 301 redirect

301 Moved Permanently

A 301 redirect is a permanent redirect which passes between 90-99% of link equity (ranking power) to the redirected page. 301 signals that the page has been moved to another URL and the old URL is outdated.

302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)

302 is a temporary redirect which passes 0% of link equity, and shouldn’t be used in most cases.
As of now, the internet runs on an HTTP protocol which dictates how URLs work. In two versions of this protocol, the HTTP response status code is different:

  • HTTP 1.0: 302 status code is «Moved Temporarily» — current page has been moved temporarily to another URL.
  • HTTP 1.1: the description phrase has been changed to «Found» — current page has been found.

307 Moved Temporarily (HTTP 1.1 Only)

A 307 redirect is the HTTP 1.1 successor of the 302 redirect. While the major crawlers will treat it like a 302 in some cases, it is best to use a 301 for almost all cases. The exception to this is when content is really moved only temporarily (such as during maintenance) and the server has already been identified by the search engines as 1.1 compatible.

Since it’s essentially impossible to determine whether the search engines have identified a page as compatible, it is generally best to use a 302 redirect for content that has been moved temporarily.

Other redirection types

There are also some other types of redirection: Meta Refresh or JavaScript redirection that are executed on the page level rather than the web server level. This is what a typical Meta Refresh redirect looks like:

<meta http-equiv="refresh" content="2;url=http://example.com/" />

It’s best not to use these types of redirect, as they are often used by spammers and doorway pages. Besides, they pass little to none of the link juice.

Examples of using redirects

Redirecting your domain to a non-www URL:

RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

Redirecting your domain to a www URL:

RewriteCond %{HTTP_HOST} ^site.com$ [NC]
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

To choose which URL to make canonical, consider:

  • which URL ranks higher in the SERPs;
  • which URL is more represented in the index.

Redirecting your domain to URL without a slash

When developing a website, it’s important to choose whether you want to add a slash to the links, because the search engines consider the links
— www.site.com/cat1
and
— www.site.com/cat1
to be different. Then, you’ll have to add the following code:

To delete the slash from the URLs:

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

To add the slash to the URLs:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

To redirect the user from one page to another:

Redirect 301 /oldpage.html http://www.site.com/newpage.html

Redirecting the main page duplicates

This code ensures that if there are multiple versions of the direct link to the main page (index, etc.), they will all redirect to the canonical main page:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /([^/]+/)*(default|index|main).(html|php|htm) HTTP/ [NC]
RewriteRule ^(([^/]+/)*)(default|main|index).(html|php|htm)$ http://www.site.com/$1 [L,R=301]

Redirecting catalogs

If the URLs reflect the structure of a catalog, changes in the catalog will lead to changes in the URLs. In this case, use the following redirect:

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2 [R=301,L]

But, if the URL of the previous catalog comes right after the name of a domain: www.site.com/old-catalog, use this code:

RewriteRule old-catalog /(.*) / old-catalog /$1 [R=301,L]

If you’ve switched platforms or a CMS and only the URLs’ extension has changed, use this redirect:

RedirectMatch 301 (.*).php$ http://www.site.com$1.html

Examples of using redirection to avoid duplicate pages

Redirecting (sub-)domains

In case you’ve bought several domains with multiple TLDs, OR used a subdomain to develop a new website and forgot to block it from being indexed by the search engines. Either way, you have to set up redirection to the root domain:

RewriteCond %{HTTP_HOST} !^www.site.com
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

That way, all the (sub-)domains like www.site.org, www.site.net, test.site.com, will redirect to www.site.com

Deleting multiple slashes/hyphens from the URLs

Sometimes, user can accidentally type in multiple slashes, e.g. www.site.com/catalog////page-1.html. In this case, you have to set up a 301 redirect to a page with a single slash www.site.com/catalog/page-1.html:

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

In the same way, you can set up a redirect from a URL with multiple hyphens (for example, www.site.com/catalog/page—1.html) to www.site.com/catalog/page-1.html:

RewriteCond %{REQUEST_URI} ^(.*)--(.*)$
RewriteRule . %1-%2 [R=301,L]

Redirecting from any URL to a lowercase URL

The search engines notice the letter case, so it’s best to have your URLs in lowercase. If you haven’t developed your website with this in mind, you can use this PHP-script:

$lowerURI=strtolower($_SERVER['REQUEST_URI']);
if($_SERVER['REQUEST_URI']!=$lowerURI)
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://" . $_SERVER['HTTP_HOST'] . $lowerURI);
exit();
}

How to move your website to a new domain? The optimal strategy for a 301 redirect

According to the most popular search engines, the best strategy for moving to a new domain is:

  • mounting a page-by-page 301 redirect from the old site to the new one;
  • don’t set up a redirect from robots.txt — add the Host directive to the new domain instead.

In this case, the code on the former website will have to look something like this:

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} !^www.site.com
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]
а файл robots.txt для старого сайта:
User-agent: Yandex
Disallow:
Host: newsite.com

Generating 301 redirects

If you’re not particularly tech-savvy, you can use the online services for generating basic redirects:

http://www.webconfs.com/htaccess-redirect-generator.php
http://www.rapidtables.com/web/tools/redirect-generator.htm
Just enter your data and get a code for redirection between domains, directories, and URLs.

How to test the 301 redirect

With every change in 301 redirect, you need to test the site’s performance:

  • whether it’s working (check the main page);
  • go through the main sections and webpages of the site.

301 redirect VS Canonical — which one to use & when?

Minor details aside, in order to understand what exactly do we want to say, Google offers some clear-cut rules. In very simple terms, this is how the search engines understand our commands:

301: okay, google (or any other search engine), my page isn’t there anymore and it’s been permanently moved to a new URL. Please, delete the old link from the index, and pass the link juice to the new page.

Canonical: okay, google, I’ve got multiple versions of the same page (or its content), so, please, index only the canonical version. I will keep the other versions for people to see, but don’t index them, please, and pass the link juice to the canonical page.

When is it better to use a 301 redirect?

  • This is a preferred method by default;
  • For pages, that have beenmoved permanently, or their URLs have been changed;
  • For domains, if you’ve moved your website to the new domain;
  • For 404 pages. For example, if a certain product has been deleted from the catalog, you can set up a redirect to a page with a similar product, or to the URL of the product category.

When is it better to use rel= «canonical»?

  • If you can’t set up 301 redirects or it won’t be time-efficient;
  • For duplicate content, if you want to keep both versions (for example, pages with different clothing sizes);
  • When you have multiple URLs leading to the same page (catalog categories, pages for tracking the traffic from affiliate links, etc.);
  • For cross-domain resource sharing, if you want to transfer data between pages that have different origins (domains, for example).

To sum it up

Both solutions pass the link juice and both are ranked by Google equally. 301 redirect is a bit more preferred, though.

Redirection mistakes

  • Redirection chains (avoid them to maximize the speed and the link juice flow of the website);
  • Using the wrong type of redirect (to make the right decision, you have to consider all the details);
  • Setting up internal redirects without rewriting the URLs of the links. You have to make sure that links on your website don’t lead to pages with the redirect;
  • Redirecting to irrelevant pages/content. Your links should always lead either to similar pages or to the section of the site that included the requested page;
  • The wrong choice of either rel=canonical or 301 direct (see above);
  • Redirecting robots.txt (it’s better to add the Host directive);
  • Any redirect, which doesn’t lead to a page with a 200 status code (every link should lead to a properly working page with a 200 status response. Otherwise, don’t confuse the crawlers and just show the 404 Error page).

Hopefully, this 301 how-to guide will be your cheat sheet and will help you to use a 301 redirect on your website.

If you have any questions, ask them down below. I will try my best to help you!

Read also:
Essential on-site SEO factors.

Понравилась статья? Поделить с друзьями:
  • Ошибка render creation error морровинд
  • Ошибка red orchestra 2 heroes of stalingrad
  • Ошибка renault megane 2 check
  • Ошибка red dead redemption 2 при загрузке обновления
  • Ошибка remote utilities host is running on your pc