Verification: a143cc29221c9be0

Php 301 redirect на себя

Php 301 redirect на себя

TL;DR

Этот пост рассказывает об уязвимостях Open/Unvalidated Redirects и Forwards. Вы узнаете, что они из себя представляют, как их найти, как их использовать и как их исправить.

Что стоит отметить

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

Введение

Что такое перенаправление (Redirects)?

Перенаправление означает, что веб-сайт может перенаправить запрос ресурсов на другой URL/конечную точку. Предположим, что вы отправляете запрос на apple.com, а apple.com может перенаправить вас на другой сайт (new-apple.com), так что вы окажетесь на new-apple.com, даже если исходный запрос был сделан для apple .com. Это называется «перенаправление». Существуют различные типы перенаправлений в HTTP.

Стандартные коды статусов перенаправлений — 3xx

  • 300 Multiple Choices множество выбора
  • 301 Moved Permanently перемещено навсегда
  • 302 Found найдено
  • 303 See Other смотреть другое
  • 304 Not Modified не изменялось
  • 305 Use Proxy использовать прокси
  • 307 Temporary Redirect временное перенаправление
  • 308 Permanent Redirect постоянное перенаправление

Перенаправление может происходить на стороне сервера (Server-Side) или на стороне клиента (Client-Side).

Server-Side: Запрос на перенаправление отправляется на сервер, затем сервер уведомляет браузер о перенаправлении на URL-адрес, указанный в ответе.

Client-Side: Браузер получает уведомление о перенаправлении на указанный URL-адрес напрямую, без вмешательства сервера.

Что такое Open Redirects?

Open redirect (Открытое перенаправление) это то, что написано в названии: Открытое (Open) перенаправление (Redirects) на любой веб-сайт.

Почему это проблема?

Ну, это плохо с самого начала, подумайте об этом на мгновение, что если apple.com, ДОВЕРЕННЫЙ веб-сайт, позволяет вам перенаправить на любой другой веб-сайт. Тогда злонамеренный пользователь может просто перенаправить apple.com на attacker.com, и люди все время будут думать что они находятся на apple.com, полагая, что ему доверяют, но на самом деле это не так. Поэтому разрешать перенаправления на любой веб-сайт без проверки или без надлежащего уведомления пользователя — это плохо.

Объяснение

Допустим, есть «хорошо известный» веб-сайт — https://example.com/. И давайте предположим, что есть ссылка, как

https://example.com/signup?redirectUrl=https://example.com/login

Эта ссылка на страницу регистрации, после регистрации вы будете перенаправлены на https://example.com/login, который указан в URL-адресе в GET параметре redirectUrl.

Что произойдет, если мы изменим example.com/login на attacker.com?

https://example.com/signup?redirectUrl=https://attacker.com/

Посещая этот URL, если после регистрации мы будем перенаправлены на attacker.com, это означает, что у нас есть открытая уязвимость перенаправления. Это классический открытый редирект и часто используется для фишинга.

Почему это происходит?

Это происходит из-за недостаточной проверки перенаправления в серверной части, что означает, что сервер неправильно проверяет, находится ли URL-адрес перенаправления в своем белом списке или нет. Вот несколько примеров уязвимого кода

PHP (Server-Side)

Здесь код php слепо захватывает URL-адрес из параметра redirect_url и перенаправляет на этот URL-адрес, используя HTTP-заголовок Location.

Java (Server-Side)

 response.sendRedirect(request.getParameter("u"));

Здесь jsp-страница берет URL-адрес из параметра u и слепо перенаправляет его на указанный URL-адрес.

Javascript (Client-Side)

window.location.href = "https://attacker.com";

Мы можем назначить строку URL для location.href объекта window. Это приведет к перенаправлению. Если там нет проверок, значит, это уязвимость.

HTML (Client-Side)

Метатеги HTML могут обновлять сайт с заданным URL-адресом в качестве содержимого (content), а также вы можете указать время задержки перед обновлением.

Как обнаружить эту уязвимость?

  • Посетите каждую конечную точку цели, чтобы найти параметры «redirect».
  • Просмотрите истории прокси. Обязательно используйте фильтры.
  • Простой перебор (Bruteforcing) тоже может помочь найти уязвимость
  • Вы можете раскрыть многие конечные точки, просто прочитав код JavaScript.
  • Google — твой друг, поищите в поисковике, пример запроса: inurl:redirectUrl=http site:target.com
  • Изучите и проанализируйте целевое приложении на наличие потребности перенаправления , например, перенаправление на панель мониторинга после входа в систему или что-то в этом роде.

Немного магии

  • Тест на базовую модификацию URL как target.com/?redirect_url=https://attacker.com.
  • Попробуйте с двойными косыми чертами target.com//attacker.com.
  • Попробуйте target.com/@attacker.com. В этом случае интерпретация будет такой: target.com — это имя пользователя, а attacker.com — это домен.
  • Тест на интерпритацию javascript javascript:confirm(1).
  • Попробуйте target.com/?image_url=attacker.com/.jpg, если загружаются ресурсы изображений.
  • Попробуйте IP-адрес вместо имени домена.
  • Вы можете пойти дальше с точки зрения представления IP в десятичном, шестнадцатеричном или восьмеричном виде.
  • Вы также можете попробовать target.com/?redirect_url=target.com.attacker.com, чтобы обойти слабые реализации регулярных выражений.
  • Китайский разделитель 。в виде точки — https://attacker%E3%80%82com.
  • Тест на обратную строку unicode(“\u202e”target.com@%E2%80%AE@attacker.com.
  • Без слешей https:attacker.com.
  • Обратные слешы http:/\/\attacker.com или https:/\attacker.com.
  • Разные домены redirect_url=.jp в результате перенаправляется на target.com.jp который отличаются от target.com.
  • Попробуйте юникод безумие (включая смайлики) t𝐀rget.com или 𝐀ttacker.com(‘𝐀’ это “\uD835\uDC00”).

Использование уязвимости

Фишинг

Предположим, что целью является example.com. Он имеет страницу восстановления пароля по адресу example.com/forgot-password. Вы вводите адрес электронной почты и нажимаете кнопку «Forgot Password», и вам будет отправлено письмо со ссылкой для сброса пароля, и эта ссылка может выглядеть следующим образом

https://example.com/reset-password/some-random-token?redirect=https://example.com/login

Если мы вмешаемся в параметр redirect и изменим его на

https://example.com/reset-password/some-random-token?redirect=https://attacker.com/login

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

Сцепление с SSRF

Если вы ничего не знаете о SSRF, вы можете поискать об этом в Google. В любом случае, допустим, у нас есть цель — example.com, и вы обнаружили ошибку SSRF на https://example.com/?get-image=https://images.example.com/cat.jpg. По сути, мы хотим заставить сервер сделать запрос от нашего имени. Мы можем изменить значение параметра get-image, и сервер сделает запрос к этой конечной точке. Но в этом случае он ограничивает запросы своим собственным (под) доменом (ами), например images.example.com. Это означает, что вы можете сделать запрос на * .example.com (Любой поддомен) в качестве сервера и не можете получить доступ ни к чему вне этой области. Допустим, вы также обнаружили ошибку Open Redirect на https://test.example.com/redirect_url=https://www.example.com/, теперь вы можете связать их вместе, чтобы заставить SSRF работать для любого домена, например

Сначала мы используем уязвимость Open Redirect, изменяя параметр redirect_url

https://test.example.com/?redirect_url=https://www.attacker.com/

Затем мы можем использовать это с SSRF, добавив открытый URL-адрес Open Redirect сверху в качестве параметра get-image.

https://example.com/?get-image=https://test.example.com/?redirect_url=https://www.attacker.com/

Теперь это заставит сервер сделать запрос на один из его собственных поддоменов (test.example.com), а затем он будет перенаправлен на attacker.com, чтобы сработала ошибка SSRF.

    -------------     --------------------                       ---------------- 
==> | get-image | ==> | test.example.com | ==> { REDIRECTS } ==> | attacker.com |
    -------------     --------------------                       ----------------

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

“Вы ограничены только вашим воображением.”

Защита от уязвимости

  • Используйте перенаправления, только если нет другого варианта.
  • Если вы хотите их использовать, убедитесь, что вы правильно проверяете домены через белый список.
  • Вы также можете использовать hmac, если хотите, но с этим довольно легко справиться (атаки с расширением длины — length extension attacks), так что не усложняйте вещи, используйте правильный белый список.

Немного полезных ссылок

Список всех уникальных отчетов об Open Redirect Reports на HackerOne, которые я смог найти на первых 20 страницах результатов Google.

  • [Report-226408] Open Redirect on Shopify
  • [Report-211213] Open Redirect on Nextcloud
  • [Report-246897] Open Redirect on Twitter
  • [Report-103772] Open Redirect on Shopify
  • [Report-309058] Open Redirect on WordPress
  • [Report-260744] Open Redirect and XSS on Twitter
  • [Report-320376] Open Redirect on HackerOne
  • [Report-111968] Interstitial redirect bypass / Open Redirect on HackerOne Zendesk Session
  • [Report-244721] Open Redirect on Mail.Ru
  • [Report-236599] Open Redirect on ExpressionEngine
  • [Report-299403] Open Redirect on HackerOne
  • [Report-239503] Open Redirect & Information Disclosure on HackerOne
  • [Report-210875] Open Redirect via Host Header
  • [Report-119236] Open Redirect on Uber
  • [Report-126203] Open Redirect on Uber
  • [Report-28865] Open Redirect Filter bypass on HackerOne
  • [Report-144525] Open Redirect bypass on New Relic
  • [Report-104087] Open Redirect bypass using svg on Slack
  • [Report-179568] Open Redirect via window.opener on Open-Xchange
  • Open Redirect to RCE on Google Hangouts Electron app & RCE Tweet

Шпаргалки

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

  • EdOverflow Open Redirect CheatSheet
  • cujanovic Open Redirect Payloads
  • fuzzdb Redirect Url Templates
  • ak1t4 Open Redirect Payloads
  • random robbie Open Redirect Payloads
  • OWASP Unvalidated Redirects and Forwards Cheat Sheet

Что такое и как сделать редирект и почему он настолько важен

Читайте также: Тестовый хостинг для сайта: 8 проверенных хостингов

Прежде чем рассказать, как сделать редирект ссылки, давайте вкратце остановимся на вводной информации.

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

Помните! Если редирект ссылки сделан правильно, то не понижается авторитет, ценность и ссылочный вес страницы-донора (с которой уводят пользователя), а они при этом передаются непосредственно новой странице – акцептору (сюда приходят посетители сайта после перенаправления).

Редирект ссылки: несколько примеров использования

  1. Когда сайт переехал с http на защищенный https.
  2. Переход с URL, в котором имеется www, на «урл» без www или наоборот.
  3. Если сайт сменил доменное имя.
  4. Переход с одной страницы на другую. К примеру, если в интернет-магазине уже нет в наличии какого-то товара или его вообще сняли с производства и, соответственно, реализации – то система перенаправит пользователя на карточку похожего товара.
  5. Перенаправление посетителей ресурса на мобильную версию проекта, если они заходят с мобильных устройств.

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

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

Разновидности редиректов и особенности их применения

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

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

301

В этом случае определенная страница навсегда перемещена со старого УРЛ на новый. Когда система браузера получает код 301, она посылает еще один запрос и уже отправляет пользователя на новый «УРЛ».

Запомните! Код 301 полностью сохраняет авторитет, ссылочный профиль старого адреса.

Поэтому, если вы хотите перевести свой веб-ресурс на новый протокол https, можете смело использовать код 301. Все достижения сайта будут сохранены!

302

Здесь все не так просто и однозначно. Так, в HTTP 1.0 данный код указывал на то, что конкретный адрес был временно перемещен на новый «УРЛ».

В HTTP 1.1 у кода другое значение – он указывает на статус «Найдено». То есть, сайт есть, но он временно переместился по новому адресу. При этом данный код не передает важность и вес акцептору.

Кстати! В HTTP 1.1 временное перемещение выполняют два других кода – 303 и 307. Обусловлено изменение тем, что в некоторых браузерах код 302 не всегда обрабатывается правильно.

303 и 307

303 код рекомендуется использовать в том случае, если нет точного ответа на запрос посетителя, однако вы можете предложить ему замену. Пусть она и не полностью соответствует ожиданиям.

Обратите внимание! 303 код хорошо применять, если на целевой странице предусмотрены различные формы. В такой ситуации крайне важно, дабы интернет-обозреватель совершал запрос только посредством GET. Это безопасный метод.

Код 307, как говорилось выше, также может использоваться вместо 302. У него статус временного перенаправления – название Temporary Redirect. Новый запрос, выполняемый браузером, должен осуществляться только строго безопасным и автоматическим методом. Например, GET и HEAD.

Обратите внимание! 307 нужно применять в том случае, если вам нужно указать, что конкретный ресурс пока находится на другом УРЛ.

Промежуточный вывод

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

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

Коды 303 и 307 применяются лишь в тех случаях, когда перенаправление нужно делать на протяжении определенного времени.

Типы редиректов и их описание

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

  • .htaccess;
  • config;
  • PHP;
  • HTML;

Давайте рассмотрим каждый из указанных вариантов.

.htaccess

Он встраивается в одноименном файле в том случае, если сервер, на котором размещен сайт, управляется при помощи Apache.

Как настроить 301 редирект htaccess? Всё относительно просто. Следует внести изменения в файл с соответствующим названием.

Чтобы получить к нему доступ, нужно пользоваться специальными клиентами для FTP. Их довольно много – начиная от классического Total Commander и заканчивая более современной и популярной разработкой под названием FileZilla. На примере последнего клиента и рассмотрим особенности работы.

Потом необходимо будет перейти в настройки программы, выбрать в меню строку «Сервер» и там уже указать, чтобы демонстрировались даже скрытые файлы. После – найти htaccess – он размещен в папке с доменным именем сайта в каталоге public_html.

Внести изменения непосредственно там не получится. Сначала нужно будет загрузить файл себе на ПК:

  • выделить файл;
  • перейти в контекстное меню;
  • выбрать нужную вам опцию.

В скачанный файл вносятся изменения, а потом он снова загружается на сервер. В FileZilla окно разделено на две части – в левом окне демонстрируются файлы вашего ПК, а справа – всё, что находится на сервере.

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

Вносить изменения в htaccess следует при помощи блокнота. Именно ним открывается файл, а потом добавляется нужный вам код.

Если сервер управляется посредством Nginx, код вписывается в файл под названием nginx.conf. В нем нужно найти блок server и туда внести изменения.

PHP-редиректы

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

На вашем веб-ресурсе имеется несколько десятков страниц, которым необходимо задать перенаправление, а еще несколько десятков в нём не нуждаются? Тогда именно PHP-способ будет оптимальным.

Настройка редиректов в этом случае проводится следующим образом:

  • загрузите на свой ПК index.php;
  • также файл можно открыть без скачивания в панели управления вашего хостинга;
  • искать index.php нужно в корневой папке всего ресурса, там же, где искали и описанный в предыдущем разделе файл;
  • внесите изменения в файл, вписав в него нужный код;
  • обязательно сохраните все внесенные изменения;
  • снова загрузите файл в папку.

JavaScript-редирект

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

Обратите внимание! Не сработает метод и в том случае, если поддержка JavaScript отключена в обозревателе юзера. То есть, все ваши старания пойдут прахом.

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

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

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

Например, в WordPress редирект такого типа настраивается практически в один клик. Для этого требуется инсталлировать специальный плагин Per page add to head. Он простой в работе, но самое главное – бесплатный.

Кстати! Если вы хотите узнать еще больше клёвых фишек о «Вордпресс», записывайтесь на мой авторский и полностью бесплатный онлайн-курс по созданию сайтов. Участвуя в нем, вы гарантировано создадите сайт своими руками всего за 4 дня. Получите массу прочей полезной информации, как развивать проект. После окончания курса у вас будет собственный сайт с первыми статьями, полностью готовый к продвижению. При правильной работе с ним вы уже через несколько месяцев будете получать доход в несколько сот долларов каждый месяц.

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

HTML-редирект

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

Дабы сделать редирект страницы, нужно поступить, как и в случае с JavaScript. После внесения кода не забудьте сохранить изменения и проверить адекватность функционирования.

Промежуточный вывод

Настоятельно рекомендую пользоваться двумя первыми методами. Серверные перенаправления более быстрые, удобные.

Код редиректа: где его взять

У опытного веб-мастера проблем с этим вопросом не будет. А вот у начинающих специалистов могут возникнуть сложности. Не стоит расстраиваться. Есть два способа решения:

  • обратиться к опытному специалисту;
  • воспользоваться специализированными генераторами.

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

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

  1. 301 Redirect Code Generator. Данный сервис предназначен, чтобы создавать коды для разных вариантов их внедрения:
  • ASP;
  • Apache;
  • NET;
  • JavaScript;
  1. Конвертер кода. Сервис рекомендован тем веб-мастерам, чьи проекты размещены на серверах Nginx. Перейдя по ссылке, вы сможете выполнить трансформацию кода для .htaccess в перенаправления для nginx.config.
  2. Генератор .htaccess. Сервис создан для того, чтобы генерировать коды для перехода со страницы на страницу. Также он поможет «в путешествии» между отдельными категориями веб-ресурса. В нем создаются скрипты, перенаправляющие юзера с домена, в котором есть www. на домен без этих трех символов.
  3. Seomagnifier. Довольно таки простой сервис. Его основная задача – создать код для перехода с доменов с www на домены без них или в обратном направлении.
  4. 301 Redirect Code Generator Tool. Тут делаются коды для перехода с домена на домен или со страницы на страницу. В сервисе можно создать редиректы:
  • PHP;
  • JavaScript;
  • HTML;
  • ASP;
  • NET.
  1. Генератор для .htaccess. Уже из названия сервиса понятна его основная задача и для какого файла он создает перенаправления. Кроме того, доступны опции, позволяющие выбирать конкретный сценарий, указать необходимый URL.
  2. Генератор редиректов 301. Создает коды для:
  • HTML;
  • NET;
  • Apache;
  • ASP;
  1. Генератор Brontobytes. Сервис помогает в создании кодов для перенаправления с разных доменов (в том числе, «с www» на «без www» и наоборот), изменения «урл» отдельных страниц, категорий веб-проекта.

Интересный факт! Еще в 2017 году были проведены исследования компании из Великобритании Netcraft. Их результаты указали, что почти 45% всех веб-ресурсов функционируют на серверах с Apache. Более 20% — с Nginx. Остальной софт занял долю в 8%.

Как сделать редирект сайта: распространенные и действенные методы на примерах

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

Делаем перенаправление с http на https

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

Кстати! Хотите сделать интернет-магазин? Записывайтесь на мой полностью бесплатный онлайн-курс по созданию интернет магазина. Он построен на выполнении практических заданий. Вам нужно только смотреть видео-инструкции и следовать им. Этого будет достаточно для создания интернет-магазина своими руками.

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

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

  • как искать поставщиков;
  • какие сервисы подключить;
  • как принимать оплату;
  • как оформить карточку товара;
  • как раскрутить магазин и привлечь клиентов;
  • и многое другое.

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

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

  • загрузить на диск своего ПК конфигурационный файл .htaccess;
  • также редактирование допускается непосредственно в панели управления вашего хостинга;
  • при помощи одного из описанных выше ресурсов создайте код;
  • встройте полученный код в файл;
  • не забудьте сохранить внесенные вами изменения;
  • загрузите файл .htaccess снова на сервер.

Как видите, ничего сложного. Конечно, отдельного упоминания заслуживает процесс перехода на безопасный протокол. Однако это тема отдельной масштабной статьи. Тут замечу, что если ваш проект будет создан на платформе WordPress, то там для этих целей используется специализированное расширение, устанавливаемое в один клик.

Редирект с www или на www

Расскажу, как сделать редирект домена посредством PHP. Вот пошаговая инструкция:

  • скачайте на свой ПК файл index.php;
  • при помощи одного из указанных выше сервисом создайте нужный вам код;
  • интегрируйте полученный код в файл;
  • сохраните внесенные изменения и снова загрузите файл на сервер, где хранятся все данные сайта;
  • потом укажите основной «УРЛ» в настройках.

К примеру, если речь идет о «Вордпресс», сделать это можно непосредственно в меню. Откройте раздел «Настройки» и перейдите в раздел «Общие». То есть, ничего сложного в том, как правильно сделать редиректы – нет!

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

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

Как сделать редирект на другую страницу

Теперь о том, как сделать 301 редирект. Для такого действия вам нужно внести изменения в один из файлов:

  • .htaccess;
  • php.

В файл вносится код перенаправления. Сейчас скажу, как сделать редирект WordPress – эта платформа хороша тем, что в ней есть масса удобных и полезных плагинов. В том числе, и для решения нашей задачи:

  • Simple 301 Redirects;
  • Redirection;

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

Кроме того, сделать редирект можно и в панели управления сервером.

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

Следующий важный момент – как сделать редирект на другой домен. Тут тоже ничего сложного нет, потому что принцип схож с тем, как делается изменение, например, при переходе с http на https. Нужно просто добавить нужный вам код, сгенерированный в одном из приложений, в файл .htaccess или index.php.

Обратите внимание! В этой ситуации важно сгенерироваться постраничное перенаправление.

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

Делаем перенаправление для папки

В этом случае также следует внести изменения в файлы .htaccess или index.php. Дополнительные настройки редиректа нужно будет добавить в том случае, если непосредственно в «УРЛ» указано наименование папки.

Допустим, у вас веб-ресурс посвященный литературе. УРЛ имеет такой вид: https://knigi/klassicheskiye/bulgakov. Если владелец проекта желает создать отдельную директорию и получить такой адрес https://knigi/klassicheskiye-proizvedeniya/bulgakov, вам в файл требуется внести следующие изменения:

edirectMatch 301 ^/ klassicheskiye/(.*)$ / klassicheskiye-proizvedeniya/$1

Уникальные ситуации: перенаправление расширения или слеша

На некоторых ресурсах в конце «УРЛ» владельцы проекта ставят знак слеш «/». На других – такого знака нет. Однако нужно понимать, что даже полностью одинаковые адреса, но со слешем и без такого знака поисковые роботы считают разными. Исходя из сказанного выше, необходимо подобрать оптимальный вариант адресов и сделать редиректы.

Последовательность действий аналогичная выше описанным – для таких ситуаций генерируйте код по этой ссылке. Потом встройте его в .htaccess.. Во время генерации кода по ссылке, указанной выше, не забудьте поставить флажок напротив строки: «Non-Slash to Slash URLs».

Теперь расскажу, как сделать редирект главной страницы с расширением на такой же УРЛ, но без него. Вам нужно создать код и встроить его в конфигурационный файл. К примеру, если речь идет о расширениях с .html на .php. В этом случае вы получите вот такое перенаправление:

RewriteEngine on

RewriteRule index\.html index.php [NC,R]

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

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

Проверяем редирект

Теперь, когда вы знаете, как сделать редирект главной страницы, поговорим о его проверке. Сделать это можно непосредственно в вашем интернет-обозревателе – абсолютно любом.

Для этого выполните следующие действия:

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

Также помочь в решении вопроса могут определенные сервисы:

  • Чекер PrCy;
  • Redirect Checker;
  • Redirect Check.

Каждый из этих сервисом не только демонстрирует вид перенаправление, но и указывает на статус ответа сервера, когда вы переходите на новый «УРЛ».

Понятие «редирект»

Если перевести данный термин дословно с английского языка, то он означает «перенаправление». На бытовом уровне функция редиректа выглядит так: если на какой-то улице происходит затор движения, то регулировщик переводит трафик на другое направление. Функция redirect выглядит аналогично.

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

редирект 301 в схеме

Для чего используется функция редиректа

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

Редирект помогает также решить и некоторые вопросы SEO-оптимизации:

  • Позволяет склеивать страницы без использования префикса и с ним;
  • Используется для переезда сайта на другой домен; при этом количество посетителей не уменьшится, а рейтинг в поисковике останется прежним;
  • Обрабатывает повторяющиеся страницы;
  • Если сменился CMS сайта, то результаты продвижения сохраняются — в противном случае настройки ссылок будут разными;
  • Необходим в случаях, когда нужно скрыть или удалить конкретные разделы сайтов, перенаправить пользователя на главную или другие страницы.

схема редиректа

Как работает функция редиректа

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

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

передача веса по внешним ссылкам

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

  • Если используются страницы с отдельными ссылками, которые относятся к разным видам каталогов;
  • Для несуществующих сайтов и их страниц;
  • С файлом Robots.txt. Если вы решили перенести сайт на другой домен, то обязательно сохраняйте прежний файл в свободном доступе, чтобы старая и новая версия склеились быстрее;
  • При работе со страницами с несколькими адресами, которые относятся к разным каталогам.

страница редиректов

Аналогичную функцию может выполнять тег rel=canonical. Большой плюс этого способа в том, что он помогает поисковикам быстро распознать новую ссылку в качестве основной, хотя сам тег не индексируется.

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

Чтобы не потерять статистику предыдущего сайта, с которого производится редирект, часто владельцы веб-сайтов «склеивают» свои ресурсы в один в надежде увеличить свои показатели. Однако подобные действия могут привести к неправильной индексации ресурса веб-сайта. Не каждый редирект поможет Вам в продвижении своего сайта в поисковиках. К примеру, может случиться так, что пользователь перейдёт на правильный редирект и продолжит работу с сайтом, а вот робот-индексатор поисковика останется на предыдущей странице и проведёт анализ практически полупустой страницы с одним только редиректом, что никак не может сказаться положительно на статистике посещений.

Какие существуют виды редиректов

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

  • Временные рамки перенаправления или редирект на постоянной основе;
  • Доступна ли старая страница после включения функции.

simple 301 redirects

Рассмотрим наиболее популярные и используемые виды:

Название редиректа Как работает Когда используется
301 Настройка перенаправления происходит на постоянной основе. Старая версия страницы больше не участвует в поиске. Все показатели сохраняются и транслируются на новый ресурс Подходит для сайтов, где необходимо удалить дубли (страницы, которые полностью повторяют аналогичные им). Можно применять и в других случаях оптимизации
300 При появлении пользователя на сервере автоматика предлагает ему несколько вариантов выбора домена для дальнейшего перехода Необходимо в случаях, когда для пользователя существует множество вариантов одного и того же ресурса. К примеру, в зависимости от погоды в регионе пользователя или его национальности
404 На эту несуществующую страницу-ошибку происходит перенаправление, если системе не удалось найти 301 Отображается в случае, если перенаправление настроено неправильно
302 Временная настройка перехода с одной страницы на другую. Параметры старого адреса остаются на ней, а на новую страницу ничего не переносится Подходит для интернет-магазинов, которые перенаправляют покупателя со страницы товара, которого больше нет в наличии, на новый товар с похожими характеристиками. Не рекомендуется выбирать этот редирект для переезда на новый ресурс
303 и 307 Временное перенаправление на новую страницу с сохранением прежних параметров (практически дублирует 302) Используют, если есть необходимость перенаправить пользователя на страницу, где нет точного ответа на запрос, но страница может частично заменить основную
306 Сообщение о временных технических работах на проекте Используется как «заглушка», т.е. страница, указывающая на то, что сайт на данный момент находится в разработке
305 Используется только в случае запроса доступа по коду 305. При наличии доступного порта происходит повторное обращение Необходим, если требуется переместить пользователя на свой ресурс через определённый прокси-сервер

страница 404