• Что можно приготовить из кальмаров: быстро и вкусно

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

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

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

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

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

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

    If (isset($_GET["url"])) {$url = $_GET["url"]; } if (!!preg_match("#(http?|ftp)://\S+[^\s.,>

    Неверный формат запроса! Проверьте URL!"); } header("Location:$url"); exit();

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

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

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

    Скрипт php редиректа с возможностью скрытия реферальных ссылок

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

    If ($key == "1") { foreach($partner as $key=>
    "; exit(); }

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

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

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

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

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

    Disallow: /go.php

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

    Disallow: /extension

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

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

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

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

    Header("Location:$url");

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

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

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

    Переход по внешней ссылке var timetogo = 10; var timer = window.setInterval(function() { var str = timetogo; $("#counter").text(str); if (timetogo