PHP редирект внешних ссылок и скрытие реферальных ссылок
Wednesday, 11 Aug 10 в 0:56
Данный пост, как и многие другие в блоге, имеют свою “историю” или, если можно так выразиться, практическое происхождение. Когда я только начинал вести блог, то исследовал некоторые методы для скрытия реферальных ссылок дабы найти самый лучших из них. В принципе, сложно сказать, есть ли позитивный эффект от применения подобных хитростей – ведь, давно известно, что большая часть рефералов становятся пассивными пользователями, не принося никакой доход. И тогда получается, что с одной стороны, чем больше людей вам удастся привлечь в партнерскую программу, тем предположительно больше нормальных рефов может получится. Но с другой – где гарантия, что, например, 10 “случайных зевак”, зарегистрировавшись лишь из интереса будут полезнее одного вебмастера, который сознательно перешел по вашей реферальной ссылке. Вопрос, как говорится, риторический.
В принципе, если вы размещаете описание той или иной системы для заработка в интернете то можно указать о предоставлении специальных бонусов вашим рефералам в виде полезных советов, консультаций, возможно даже софта. В таком случае, по идее, в выигрыше останутся все – пользователь получит полезные данные, а вы, возможно, прибыльного реферала. Но если публикация реф. ссылок осуществляется в тексте статей, в виде баннеров, то здесь (чаще всего) просто негде размещать ваше “щедрое предложение помощи”. И тогда, думаю, более эффективно все же скрыть реферальную ссылку.
До недавнего времени я использовал хитрость с подменой адреса при нажатии ссылки. Для этого в текст или шаблон блога добавлялся следующий код:
<a onclick="this.href='http://реальный адрес'" href="http://отображаемый адрес">текст ссылки</a>
В отображаемый адрес ссылки добавлялся обычный линк на главную страницу той или иной системы, а вот в качестве реального адреса выступала реферальная ссылка. Чтобы ее заметить нужно было смотреть HTML код страницы, но таким далеко не все будут заниматься, чаще всего вебмастера ограничиваются просмотром строки состояния браузера, которая в данном случае никак реф. ссылку не выдает. Тем не менее, метод оказался с одним большим недостатком. По словам некоторых специалистов при открытии ссылки через пункт контекстного меню “Открыть в новом окне” реферальная ссылка не сохранится. На 100% я лично в этом не уверен, пару моих тестов показали обратное, хотя в некоторых других случаях действительно ничего не происходило. В любом случае я решил поискать альтернативные методы скрытия реферальных ссылок.
PHP редирект внешних ссылок
В принципе сам по себе скрипт PHP редиректа внешних ссылок может использоваться для уменьшения числа внешних ссылок с того или иного сайта, что даст возможность больше заработать на нем в разных биржах. В общих чертах суть метода заключается в создании некоего файла go.php, в который добавляете код:
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> Перенаправление <?php $url = isset($_REQUEST['url']) ? $_REQUEST['url'] : ''; if(preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){ sleep(0); //header("Location: $url"); echo "<html><head><meta http-equiv=\"refresh\" content=\"0;url=$url\"></head></html>"; exit(); } ?>
Здесь параметр sleep() может содержать задержку для редиректа.
Данный файл заливаете с корневой каталог сайта (если это wordpress блог, то туда, где находится файл wp-config.php). После этого прописываете нужные для php редиректа ссылки как:
http://ваш_сайт/go.php?url=http://куда_направляемся
Сами понимаете, что в таком случае ни о каком скрытии рефереальной ссылки речь не идет. Поэтому есть смысл немного изменить код в файле go.php на следующий:
<?php header ("Location: http://реальная ссылка"); exit(); ?>
В этом случае в коде вместо текста реальная ссылка ставим реферальную. Но тогда в одном PHP файле мы сможем задавать редирект только для одной реф. ссылки, поэтому придется создавать сразу несколько файлов под каждую биржу отдельно по типу gosape.php, goggl.php и т.п. При этом было бы неплохо закрыть индексацию файлов с PHP редиректом в robots.txt go.php:
User-agent: * Disallow: /go.php Disallow: /gosape.php Disallow: /goggl.php
Либо проще будет закрыть индексацию целой директории, куда и добавить все php файлы.
Редирект ссылок через htaccess
Редирект для ссылок можно организовать не только через PHP файл, но и прописать соответствующую директиву Redirect в файле .htaccess. Его вы можете найти в корневой директории сайта. Кроме того на хостинге должен быть включен модуль mod_rewrite (в большинстве случае имеется). Синтаксис для команды следующий:
Redirect [status] URL-path URL
Здесь:
- status : необязательное поле, определяет код возврата, допустимые значения:
- permanent (301 — документ перемещен постоянно)
- temp (302 — документ перемещен временно)
- seeother (303 — смотрите другой)
- gone (410 — убран)
- URL-path : подставная ссылка.
- URL : реальная ссылка
Таким образом для создания партнерской ссылки добавляем в .htaccess конструкцию по типу:
RewriteEngine on Redirect /gosape http://www.sape.ru/12345.php
Таким образом клике по ссылке http://mysite.ru/gosape пользователь будет попадать на сайт sape с реферальной ссылкой. За метод спасибо автору этой статьи.
PHP редирект ссылок в два этапа
В одном из блогов нашел еще один весьма интересный метод как спрятать внешние ссылки. Для этого в корневом каталоге сайта создается некая папка, например, под названием pages, там размещаем 3 файла:
1.linkslist.php – хранит массив внешних (реферальных) ссылок для редиректа, его код:
<?php $linksList = array( 'page1.html' => 'http://www.google.com', 'page2.html' => 'http://www.php.net' ); ?>
2. redirect.php – php скрипт анализа ссылки и выполнения перерхода:
<?php require_once('linkslist.php'); $request = $_SERVER['REQUEST_URI']; $dest = explode('/', $request); $newUrlKey = end($dest); if (array_key_exists($newUrlKey, $linksList)) { header('Location:'.$linksList[$newUrlKey]); } else { header('Location:http://www.simplecoding.org'); } ?>
3. Файл .htaccess – передает запросы скрипту redirect.php.
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteRule ^get/(.+) /pages/redirect.php/$1 [L] </IfModule>
После этого на страницах вашего блога или сайта вы можете размещать ссылки вида http://site_name/pages/get/page1.html, где page1.html – определяется в файле linkslist.php и соответствует реальной ссылке, на которую будете перенаправлен пользователь. Весь процесс обработки ссылки автор метода уместил в такой схеме:

В принципе, мне лично больше всех понравился именно последний метод, за что отдельное спасибо Стаценко Владимиру, который его у себя в блоге и опубликовал. Очень удобно, что все ссылки для редиректа можно уместить в одном файле в весьма простом и наглядном виде.
Конечно, для скрытия рефереальных ссылок можно применять и плагины, но я больше склонен к простым методам, без использования сторонних приложений, если есть такая возможность. Тем не менее, в дальнейшем парочку примеров все же рассмотрю.
А каким способом скрытия реферальных ссылок пользуетесь вы и почему?
P.S. Постовой. Компания WebPromo предоставляет поисковое продвижение сайта и его раскрутку в Google и Яндекс.
Если вы не знаете как предотвратить лишение водительских прав советуем обратиться за бесплатной консультация автоюриста.
Линзмастер – это интернет магазин контактных линз с доставкой по Киеву и Украине.
Некоторое время назад у меня с одним из хостеров случилась не совсем приятная ситуация – на сервере произошел какой-то глюк, и блоги стали временно недоступными. При каком-то совершенно ужасном стечении обстоятельств проблемы задели бекапы сервера, в результате чего удалось «достать» последнюю информацию лишь недельной давности. В общем, сказал хостеру спасибо хотя бы за это и принялся заниматься восстановлением блогов вручную. Процесс занял чуть ли не полдня, зато был приобретен бесценный интересный опыт. Хотя искренне надеюсь, что он мне в дальнейшем не пригодится – занятие это не из самых веселых.
Одним из важных и незаменимых инструментов каждого сайте есть поиск. Особенно он полезен, когда на сайте много информации, найти которую так сразу нелегко. Да, в блогах есть категории, теги, но чтобы достать сообщение годичной давности иногда приходится потрудиться. В 



