Как делать редиректы. Редирект URL-адресов с помощью PHP. Функция, позволяющая убрать определенный кусок из url

  • 13.05.2019

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

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

Решение проблем

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

При наличии инструмента для создания и управления ссылками вы сможете заменять целевую страницу в несколько кликов. В итоге, ссылка в вашей статье остается прежнего формата – yourdomain.ru/link1 , а человек попадает уже не на aviasales.ru , а, например, на top100.aviasales.ru .

Существует несколько способов управления партнёрскими ссылками. Ниже мы собрали все основные, и подробно рассмотрели вопрос, как переадресовать ссылку на WordPress сайте.

Что такое редирект ссылок

Редирект – это метод перенаправления пользователя на другую страницу в сети. Например, кликая на ссылку формата: yourdomain.ru/link1 , человек в итоге попадает на партнёрскую страницу, например, на aviasales.ru .

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

Алгоритм работы редиректа крайне прост:

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

Эта процедура происходит автоматически и моментально.

301, 302, 307 редиректы

Существует 10 HTTP кодов для редиректов, но востребованы только три из них: 301, 302 и 307. Рассмотрим их главные особенности.

  • 301 – постоянный редирект, указывающий на то, что перенос осуществляется навсегда. Обычно под понятием «редирект» всего сайта (при переезде на новый домен) подразумевается этот код.
  • 302 – временный редирект, указывает на то, что перенос осуществлен временно. Этот вариант идеально подходит для организации редиректа партнёрских ссылок.
  • 307 – временный редирект. Применение кода не разрешает менять метод запроса (GET/POST). На практике в работе с партнёрскими ссылками 307 и 302 коды аналогичны.
Как сделать редирект ссылок

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

Сокращалки ссылок

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

  • https://goo.gl/ (работает до 30 марта 2019 года)

Все примеры выше – это простые сервисы для сокращения ссылок. Такой редирект не даёт вам свободы действий, но позволяет упаковать все ссылки в единый формат, а также узнать больше статистики.

HTML, JS и PHP скрипты

Редирект при помощи скриптов PHP создаеёт дополнительную нагрузку на сервер, но предпочтителен, когда речь идет о большом количестве страниц. Этот вид перенаправления работает на уровне сервера.

Редирект с использованием JavaScript работает на уровне браузера. Поскольку для срабатывания необходима полная загрузка в браузере, этот метод может быть медленнее PHP редиректа. Этот тип иногда используют для перенаправлений с задержкой. JS редирект не сработает, если в браузере у пользователя отключена функция JavaScript.

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

WordPress плагины

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

Ниже мы рассмотрим подробнее каждый из методов редиректа и приведем актуальные примеры.

Популярные сервисы сокращения ссылок
  • Goo.gl
  • При необходимости изменить целевую страницу, выбирайте интересующую вас ссылку и указывайте в открывшемся окне новый «Target URL». После этого прежняя ссылка будет вести на новую страницу, и вам не придется заменять ссылку на всём сайте.

    На странице «Click» по адресу: https://yourdomain.ru/wp-admin/admin.php?page=pretty-link-clicks доступно больше информации о совершенных кликах.

    Расширенные возможности

    Всё, описанное выше – это возможности бесплатной версии. Существует платная версия плагина, которая называется Pretty Link Pro. В платной версии плагина доступно:

    • Авто-замена ссылок на сайте;
    • Автоматическая расстановка ссылок на заданные слова;
    • Редирект на основе страны, где находится пользователь;
    • Проведение A/B тестов;
    • И некоторые другие функции.

    Стоимость платной лицензии на один сайт – 57 долларов в год. С купоном 10OFF цена снижается на 10%.

    – это альтернатива Shortlinks by Pretty Links. Плагин ориентирован на работу с партнёрской программой Amazon, но его можно использовать и для любых других ссылок. На сегодня более 10 000 человек используют Easy Affiliate Links для сокращения ссылок.

    Главные особенности плагина:

    • Простой интерфейс;
    • Распределение ссылок по категориям;
    • Импорт и экспорт ссылок в.XML.

    Также авторы предлагают палатные дополнения. Уже реализовано дополнение подробной статистики, в разработке находятся дополнения о специфике месторасположения кликов, A/B тестирование и отслеживание «сломанных» ссылок.

    – это плагин для редиректа на WordPress, который имеет полноценный функционал сокращения ссылок, но преимущественно используется как дополнение для плагина Jetpack , улучшая его возможности. Отслеживание статистики доступно через бесплатный плагин Google Analitycs by Yoast.

    Разработчики отмечают, что Shortlinks for Jetpack все еще находится на этапе разработки, иногда могут возникать ошибки. Обычно они исправляются в кратчайшие сроки. Поскольку это проект с открытым исходным кодом, то проблемы обычно отправляются в GitHub.

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

    • Простота использования с помощью визуального редактора;
    • Улучшенный опыт управления ссылками;
    • Безопасный редирект через 301, 302, 307 коды;
    • Добавление изображений к партнерским ссылкам;
    • Наличие статистики и отчетов.

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

    Редирект ссылок через PHP скрипт и Javascript

    Как мы уже отметили, PHP редиректы работают быстрее JS, поэтому более популярны среди вебмастеров. Для реализации простого перенаправления необходимо добавить в файл index.php следующий код:

    $links = parse_ini_file("shortlinks.ini"); if(isset($_GET["l"]) && array_key_exists($_GET["l"], $links)){ header("Location: " . $links[$_GET["l"]]); } else{ header("HTTP/1.0 404 Not Found"); echo "Unknown link."; }

    Никакой панели управления в данном случае нет, все новые ссылки вносятся вручную в файл shortlinks.ini, который создаётся вручную. Внутри этого файла пишем, например:

    Aviasales = https://www.aviasales.ru/?marker=XXXXXX.short

    Пример демонстрирует обычный редирект ссылки на WordPress при помощи PHP скрипта. Подробнее о том, как работает данный PHP скрипт читайте по этой ссылке .

    Редирект через JavaScript задаётся кодом, размещаемым между тегами и на нужной странице. Для реализации этой задачи доступен плагин Per page add to head . Пример простого кода для редиректа на Javascript представлен ниже:

    window.location.href = "https://www.aviasales.ru/?marker=XXXXXX.short";

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

    Лучшее решение для WordPress сайтов

    Создать ссылку с редиректом – это лишь половина задачи. В будущем ссылку нужно ещё и обслуживать – следить за статистикой и менять целевые страницы. Готовые решения – выглядят лучше, чем простые PHP/JS скрипты, так как позволяют сделать больше с меньшими трудностями.

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

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

    Универсальным решением является плагин Pretty Link в расширенной версии . Помимо редиректа, он позволяет в автоматическом режиме:

    • Заменить существующие ссылки на ссылки нового формата;
    • Расставить ссылки на словах, где ещё не было ссылок.

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

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

    ВАЖНО: перед любыми действиями по массовой замене ссылок – всегда – создавайте резервную копию базы данных вашего сайта!

    Плагин Better Search Replace поможет вам с автоматической заменой старых ссылок на новые, а также с расстановкой ссылок на слова. Сегодня плагин имеет свыше 500 тысяч активных установок. Среди основных возможностей:

    • Массовая замена старых ссылок;
    • Выбор отдельных таблиц для работы;
    • «Холостой» запуск для просмотра полей, которые будут обновлены.

    С помощью плагина вы сможете обновить старые ссылки, или же разместить новые на нужных словах. Например, вы можете задать поиск по слову «авиабилеты » и в поле для замены указать:

    авиабилеты

    У этого способа есть альтернативы. Вы можете использовать как аналогичные плагины, так и внести изменения в MySQL базу данных вашего WordPress сайта через панель управления хостингом. Ещё одна альтернатива – использовать PHP скрипт «Replace DB version 3.1.0», доступный по этой ссылке . Он работает не только с сайтами на WordPress, но и с другими популярными CMS.

    При подготовке материала мы протестировали несколько популярных решений, среди которых был и плагин URL Shortener by MyThemeShop . Многообещающее описание плагина гласит, что вы бесплатно получите в одном флаконе инструмент для редиректа, управления и для массовой замены ссылок. Это решение могло стать отличной альтернативой платной версии Pretty Link Pro, но на деле плагин, к сожалению, не работает.

    Нужно ли делать редирект партнёрских ссылок

    Редирект ссылок стоит делать для удобного обслуживания собственного проекта. И чем более удобный инструмент вы выберите для обслуживания ссылок, тем эффективней будет ваша работа. Системы управления ссылками дают больше возможностей, чем ручное размещение. Например, вы в пару кликов можете провести A/B тест или , заменив целевую страницу.

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

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

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

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

    Подписаться

    (с англ. redirect) - процесс переориентировки определенных страниц или всего сайта целиком на новый URL-адрес.

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

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

    Виды редиректов страниц и их назначение

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

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

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

    Также существуют следующие виды редиректов:

    • 307 (Temporary Redirect) - временная смена URL страницы, с сохранением начального адреса в индексе поисковиков;
    • 306 - зарезервирован под использование, но пока не применяется;
    • 305 (Use Proxy) обозначает переадресацию сначала на , а затем по повторному автоматическому запросу на искомую страницу;
    • 304 (Not Modified) - ответ сервера браузеру в случае, если с момента последнего запроса просмотренный браузером документ не изменился. Тогда браузер открывает пользователю этот документ из кеша;
    • 303 (See Other) - в переводе означает «смотри другое». Этот редирект информирует о найденном документе и перенаправляет пользователя на искомую страницу, используя метод GET (передает данные серверу через URL);
    • 300 (Multiple Choices) обозначает многовариантный выбор страницы, на которую перенаправить пользователя. Например, в зависимости от настроек браузера пользователя, поисковик перенаправит его на страницу с подходящими языковыми настройками или .
    Возможности редиректа 301

    301 редирект страницы используется при осуществлении целого ряда операций с сайтом и его содержимым.

    Он поможет:

    • «склеить» два сайта в один;
    • перенести показатели ТИЦ старого сайта и PR его страниц на новый адрес;
    • сфокусировать выдачу определенного сайта в результатах поиска, без учета в URL-адресе наличия или отсутствия «www»;
    • добавить или удалить слеши в ссылке;
    • перенаправить с одного файла на другой при смене его расширения и т.д.

    Процесс «склейки» двух доменов осуществляется путем создания кода редиректа 301. Для этого в корневой папке сайта необходимо найти файл с расширением и прописать в нем специальный код. Также потребуется настроить зеркала сайта - указать в файле robots.txt, какой из сайтов главный. Это делается при помощи команды host.

    С www на без www RewriteCond %{HTTP_HOST} ^www.site\.com$ RewriteRule ^(.*)$ http://site.com/$1 с без www на с www RewriteCond %{HTTP_HOST} ^site\.com$ RewriteRule ^(.*)$ http://www.site.com/$1

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

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

    Наличие или отсутствие в адресе сайта символа «слеша» в конце, так же, как и «www» в его начале, имеет значение для индексации поисковиками.

    Например, адрес сайта выглядит так сайт. Возможные варианты этого адреса (сайт/, www..сайт/) браузер пользователя воспримет корректно и автоматически преобразует в правильную версию.

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

    Удаление слеша RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ RewriteRule ^(.*)(/)$ $1 Добавление слэша RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/

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

    Склеить слеши RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 Склеить дефисы RewriteCond %{REQUEST_URI} ^(.*)--(.*)$ RewriteRule . %1-%2

    Для постоянного перенаправления с одной страницы сайта на другую используется код редиректа 301, в котором указывается адрес старой и новой страниц.

    Redirect 301 /page.html http://www..html

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

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

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

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

    Иногда возникает необходимость на новый домен. Чтобы сделать это не потеряв показатели ТИЦ и PR, а также сохранив ссылочную массу и объем страниц, следует прописать редирект 301 для каждой из страниц старого сайта. В корневой папке старого сайта в файле robots.txt проставляется директива host, которая указывает на адрес нового домена.

    Как сделать редирект

    Для генерации редирект-кодов существуют специальные онлайн-сервисы. При недостаточном количестве знаний или опыта каждый веб-программист сможет воспользоваться такой помощью. Также посредством использования онлайн-генератора можно выявить ошибку в коде, созданном самостоятельно.
    Наиболее популярными площадками, предлагающими услуги генерации редиректов, являются:
    http://www.rapidtables.com/web/tools/redirect-generator.htm

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

    Целесообразность использования 301-ого редиректа

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

    Использование редиректа должно быть обдуманным и оправданным. Не стоит прописывать код с участием redirect 301 для похожих страниц сайта, но имеющих принципиально важные различия (например, размер одежды в интернет-магазине или ингредиент рецепта на кулинарном сайте). Также нужно воздержаться от перенаправления, если страница имеет несколько адресов из-за соотношения ее с разными каталогами. Если страницы имеют схожий контент, но находятся на кросс-доменах, то переориентировать одну из них на другую также не нужно. И, конечно же, нельзя использовать редиректы на нерелевантные или несуществующие страницы.

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

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

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

    Данный материал не представляет собой исчерпывающий набор редиректов — это всего лишь несколько наиболее популярных видов и способов редиректа.

    Для чего нужен редирект? Основная функция для перенаправление посетителей с одного сайта на другой (с одной страницы на другую).

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

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

    Давайте рассмотрим следующие виды редиректа:

  • header-редирект средствами PHP — 301, 302-й редирект (разница между ними).
  • Редирект средствами .htaccess (и модуля mod_rewrite, который используется при этом).
  • Простейший JavaScript — редирект с помощью doсument.location
  • META-REFRESH — редирект с помощью meta-тэгов
  • JavaScript-редирект с задержкой через setTimeout (например для учёта Метрикой).
  • Iframe/Frameset — «псевдо» редирект через фреймы (например для прохождения модерации в Яндекс.Директе).
  • Редирект — перенаправление

    Как сделать редирект страницы. Способ 1 — PHP-редирект.

    Этот редирект срабатывает без загрузки странички.
    Страничка на которую идёт редирект — получает оригинальный REFERER (т.е. таким образом не скрыть откуда был редирект).

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

    Редирект нужно оформлять в файл.php и ОБЯЗАТЕЛЬНО до вывода любых символов. То есть если будет лишний пробел или символ, который выводится на экран (например до знака