• Главная
  • Карта сайта
Не найдено

PHP редирект внешних ссылок. Редирект с задержкой и таймером обратного отсчета. Скрытие реферальных ссылок

Опубликовано: 06.09.2018

видео PHP редирект внешних ссылок. Редирект с задержкой и таймером обратного отсчета. Скрытие реферальных ссылок

РЕДИРЕКТ ЧЕРЕЗ BLOGGER.COM | ССЫЛКИ БОЛЬШЕ НЕ БАНЯТ | НОВЫЙ СПОСОБ 2018

В этой статье речь пойдет о создании скрипта php редиректа внешних ссылок. Будут рассмотрены примеры создания обычного php редиректа и редиректа с задержкой. При этом также будет рассмотрен процесс создания таймера обратного отсчета на JavaScript + JQuery и способ скрытия реферальных ссылок. После рассмотрения всех примеров будут предоставлены ссылки на скачку файлов скриптов, а также подробное руководство по установке и использованию скрипта редиректа. Ну и в заключении вы найдете код для добавления кнопок редиректа в редактор WordPress.



Идея создания данного скрипта возникла у меня после того, как я отключил плагин WpNoRef, который отвечал за индексацию внешних ссылок. О нем я уже упоминал в статье « Создание полнофункционального сайта (блога) на WordPress ». Суть работы плагина заключалась в помещении всех внешних ссылок в теги <noindex> и добавлении к ним атрибута rel=»nofollow».


Php редирект

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

Создавался специальный файл, например, redirect.php, который содержал следующий код.


Простой редирект на PHP

<?php $URL="http://google.com"; header("Location:$URL"); exit(); ?>

Затем вместо внешней ссылки указывалась ссылка на нужный файл с редиректом, который перенаправляет пользователей на нужную нам страницу. В данном случае это файл redirect.php, который перенаправляет пользователей на страницу http://google.com.

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

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

if (isset($_GET['url'])) {$url = $_GET['url']; } if (!isset($url)) { $url = 'http://dmitriydenisov.com'; } if (!preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)) { exit ("<p>Неверный формат запроса! Проверьте URL!"); } header("Location:$url"); exit();

Теперь давайте коротко разберем вышеприведенный код редиректа.

Первым делом мы проверяем, существует ли переменная переданная методом GET. Если да, то преобразовываем ее в обычную переменную. Если же нет, то присваиваем переменной $url исходное значение.

Далее мы проверяем переменную $url. Если переменная прошла проверку, то перенаправляем пользователя на нужную страницу. Если же нет, то завершаем работу скрипта и выводим сообщение об ошибке.

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

Скрытие реферальных ссылок мы произведем следующим образом.

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

$partner = array ( '1' => 'http://key.net', 'http://google.com' => 'http://test.com', 'http://dmitriydenisov.com' => 'http://blog.com' );

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

Итак, ассоциативный массив у нас создан. Теперь используем функцию php array_search() для поиска индекса элемента массива $partner по его значению, которое мы получим из адресной строки методом GET.

$key = array_search("$url", $partner);

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

if ($key == true) { header("Location:$key"); } Else { header("Location:$url"); exit(); }

Теперь добавим возможность просмотра всего списка партнерских ссылок по ключу. В качестве ключа вы можете использовать любой URL. В нашем случае это http://key.net, который находится в ассоциативном массиве под индексом «1».

Итак, для реализации возможности просмотра ссылок организуем цикл по значениям в массиве $partner при помощи конструкции php foreach.

if ($key == '1') { foreach($partner as $key=>$value) echo "$key - $value"."<br />"; exit(); }

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

Ну а теперь давайте соберем все эти куски кода вместе и рассмотрим код всего скрипта php редиректа целиком.

<?php if (isset($_GET['url'])) {$url = $_GET['url']; } if (!isset($url)) { $url = 'http://dmitriydenisov.com'; } if (!preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)) { exit ("<p>Неверный формат запроса! Проверьте URL!"); } $partner = array ( '1' => 'http://key.net', 'http://google.com' => 'http://test.com', 'http://ref-link.com' => 'http://site.com' ); $key = array_search("$url", $partner); if ($key == true) { if ($key == '1') { foreach($partner as $key=>$value) echo "$key - $value"."<br />"; exit(); } else { header("Location:$key"); } } else { header("Location:$url"); exit(); } ?>

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

http://mysite.com/go.php?url=http://site.com

где http://site.com – ссылка на страницу, на которую будет произведен редирект.

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

Либо же вы можете создать отдельную директорию для скриптов и поместить файл go.php туда, после чего закрыть директорию в robots.txt.

Где extension – папка со скриптами, которая расположена в корне сайта.

Теперь давайте перейдем к рассмотрению способа создания скрипта php редиректа с задержкой и таймером обратного отсчета на JavaScript + JQuery.

Скрипт php редиректа с задержкой и таймером обратного отсчета

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

на

header("Refresh: 12; URL = $url");

где Refresh: 12 отвечает за задержку на 12 секунд.

Кроме этого мы добавим таймер обратного отсчета на нашу страницу редиректа. Код таймера обратного отсчета будет иметь следующий вид.

<script type="text/javascript"> var timetogo = 10; var timer = window.setInterval(function() { var str = timetogo; $('#counter').text(str); if (timetogo <= 0) { $('#redirect').text('Переадресация...'); window.clearInterval(timer); } timetogo--; }, 1000); </script> <div style="float: left; display: inline; text-align: center; width: 100%;" id="redirect">Переход по внешней ссылке будет произведен через: <div id="counter">10</div></div>

Где timetogo = 10 – начальное время отсчета.

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

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

<?php if (isset($_GET['url'])) {$url = $_GET['url']; } if (!isset($url)) { $url = 'http://dmitriydenisov.com'; } if (!preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)) { exit ("<p>Неверный формат запроса! Проверьте URL!"); } $partner = array ( '1' => 'http://key.net', 'http://google.com' => 'http://test.com', 'http://ref-link.com' => 'http://site.com' ); $key = array_search("$url", $partner); if ($key == true) { if ($key == '1') { foreach($partner as $key=>$value) echo "$key - $value"."<br />"; exit(); } else { header("Refresh: 12; URL = $key"); } } else { header("Refresh: 12; URL = $url"); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Переход по внешней ссылке</title> <script type="text/javascript" src="jquery-1.5.1.min.js"></script> </head> <body> <script type="text/javascript"> var timetogo = 10; var timer = window.setInterval(function() { var str = timetogo; $('#counter').text(str); if (timetogo <= 0) { $('#redirect').text('Переадресация...'); window.clearInterval(timer); } timetogo--; }, 1000); </script> <div style="float: left; display: inline; text-align: center; width: 100%;" id="redirect">Переход по внешней ссылке будет произведен через: <div id="counter">10</div></div> </body> </html> <?php exit(); ?>

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

Итак, процесс создания простого php редиректа и редиректа с задержкой и таймером обратного отсчета мы рассмотрели. Теперь давайте перейдем к заключительной части и рассмотрим код для добавления кнопок редиректа в редактор Wordrpess.

Добавление кнопок редиректа в редактор Wordrpess

Поскольку в предыдущей статье « Shortcode WordPress. Как добавить новые кнопки в редактор WordPress » мы уже рассматривали процесс добавления новых кнопок в редактор, то сейчас я приведу лишь сам код кнопок без инструкции по установке. Саму инструкцию вы сможете найти в соответствующей статье, ссылка на которую находится чуть выше.

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

edButtons[edButtons.length] = new edButton('ed_go' ,'Go.php' ,'http://dmitriydenisov.com/links/go.php?url=' ,'' ,'' ,-1 ); t.Buttons[t.Buttons.length] = new edButton(name+'_go','Go.php','http://dmitriydenisov.com/links/go.php?url=','','',-1);

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

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

http://dmitriydenisov.com/links/go.php?url=http://site.com

где http://dmitriydenisov.com/links/go.php — путь к файлу go.php.

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

И чуть не забыл. Скачать файлы скрипта php редиректа вы можете по следующей ссылке — скачать исходники скрипта .

На этом все. Удачи вам и успехов в построении сайтов.

Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter

Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью

rss