Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Сокрытие реальной ссылки

Частенько в интернете сталкиваешься с нежеланием посетителей нажимать на реферальные ссылки. Вплоть до копирования ссылки в строку браузера и удаления реф.части.

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


1. Ссылка средствами JavaScript

Если уж вы ссылаетесь прямо на сайт партнерки, то можно слегка изменить код ссылки:

<a href="http://www.site.ru/" target="_blank"
    onclick="this.href='http://www.site.ru/?refer=XX'">site.ru</a>

В этом случае, в статусной строке браузера будет показываться ссылка на http://www.site.ru/, а в момент клика по ней, она будет заменена на http://www.site.ru/?refer=XX' и после этого осуществлен переход. Правда, после этого на этом сайте при наведении ссылка будет уже с реф. частью


2. Создание отдельной странички

Для каждой реф ссылки создаете отдельную страничку. Сам редирект можно сделать несколькими способами.

Например, средствами PHP (страничка будет содержать только эту строчку).

<?php header ("Location: http://www.site.ru/?refer=XX"); exit; ?>

Или средствами JavaScript (код будет располагаться внутри <head></head>, а внутри <body></body> можно сделать простую ссылку, на тот случай, если у пользователя отключена поддержка JS).

<script>
location.href="http://www.site.ru/?refer=XX";
</script>

Также можно обойтись простыми средствами HTML (код размещается внутри <head></head>).

<meta http-equiv="Refresh" content="0; URL=http://www.site.ru/?refer=XX">

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


3. С помощью .htaccess

В файле .htaccess пишете для всех реф.ссылок следующие строчки редиректа:

Redirect 301 /reklama.php http://www.site.ru/ref=xxx

При этом в анкоре ссылки вы указывете страницу на своем сайте:

<a href='/reklama.php'>xxxx</a>

Пользователь видит переход на страницу site.php внутри домена, а в браузере откроется http://www.site.ru/ref=xxx


4. Универсальный код JavaScript для всех ссылок

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

// задержка, чтобы успела полностью загрузиться страница и отработал DOM
window.setTimeout('oef()',500);
function oef(){// Цикл по всем ссылкам
   for(i=0; i<document.links.length; i++)
     if (document.links[i].hostname.indexOf('htmlweb.ru')<0){
    document.links[i].target='_blank';    // все ссылки открывать в новом окне
    pos=document.links[i].href.indexOf('/',10);
    // если у ссылки есть ref-часть и нет обработки события onclick
    if (pos>=0 && document.links[i].onclick==null){
       // добавляю обработку события onclick
       document.links[i].onclick=new Function('this.href="'+document.links[i].href+'";');
       // удаляю у ссылки реферальную часть
       document.links[i].href=document.links[i].href.slice(0,pos);
}}}

Вставьте этот код перед тегом </body> на всех страницах или в отдельный, подключаемый ко всем страницам внешний файл javascript.

В этом случае, в статусной строке браузера будет показываться ссылка на http://www.site.ru/, а в момент клика по ней, она будет заменена на http://www.site.ru/?refer=XX' и после этого осуществлен переход. Правда, после этого, при наведении ссылка будет уже с реферальной частью.


.