FL.ru – фриланс сайт удаленной работы №1. Поиск удаленной работы, фрилансеры.

Как сделать редирект: php редирект, 301 редирект, редирект javascript, редирект через htaccess и редирект html. Клеим сайты, прячем реферальные ссылки

Категории: Имею мнение

Недавно была статья, в которой я рассказал, что появилась партнерская программа баз пастухова (почитать — Появилась партнерская программа по продаже баз Пастухова). Там я упомянул, что Макс сделал возможность по-умному прятать реферальные ссылки. Спрятать свои реферальные ссылки можно теперь можно через интерфейс партнерской программы через php редирект, редирект javascript и редирект html.

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

Что такое вообще редирект?

Редирект – это когда с помощью специальных технических инструментов, мы настраиваем переадресацию пользователя с одной страницы на другую страницу, или на другой сайт

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

Например, редирект javascript и редирект html – это вроде как стремные способы переадресации страницы. Дело в том, что отношение поисковиков к переадресации, мягко скажем, неоднозначное. То есть, я не берусь утверждать, что редирект через javascript однозначно приведет к бану, но все-таки такая возможность не исключается.

Вообще считается, что наиболее безопасным видом редиректа является 301 редирект. Поисковики относятся к нему более лояльно. Поэтому из наиболее распространенных способов переадресации самыми безопасными являются редирект через htaccess и php редирект. Все потому, что они не просто переадресовывают пользователя на нужную страницу, но и выдают специальный код ошибки — 301 Permament Redirect. А это есть хорошо для поисковых роботов.

Да, кстати, насчет безопасности, по поводу того, что 301 редирект вроде как самый надежный, а все другие, в том числе и редирект через html код не являются надежными. Есть пример. Сайт авторитетного человека – Алексея Вострова (http://www.seoded.ru/). У Алексея сайт сделан на html. Я давно обратил внимание, что у него все внешние ссылки преобразованы во внутренние. Ну вот, например, как здесь. Там, где стоит анкор «Перейти на другой сайт», внешняя ссылка замаскирована под внутреннюю, и переадресация реализована через html редирект

редирект html

То есть, это говорит об одном из двух:

1-е: либо поисковики лояльно относятся к html редиректу, организованному только на статических сайтах

2-е: либо html редирект безопасен для всех видов сайтов, в том числе и динамических, на php

Но чтобы точно ответить на этот вопрос, нужно делать эксперименты. А чтобы сделать нормальный эксперимент, нужно хотя бы штук 100 сайтов, потому что если поисковик забанит один сайт за использование, например, редиректа через javascript, то это может рассматриваться как случайность, а если забанит 98 сайтов из 100 за использование того же вида редиректа, то это уже будет закономерность. Но поскольку я такими ресурсами не обладаю, то буду строить свое мнение только на предположении, и большинстве мнений, которые можно встретить на форумах. А там считают, что 301 редирект – самый надежный :)

Единственное, что можно сказать по поводу целесообразности использования того или иного вида редиректа, так это то, что не все поисковики понимают редирект через javascript. А это можно использовать, чтобы отдать больше или меньше веса отдельным страницам сайта. Помните, я писал статью про программу для определения веса страниц Page Weight? Там я подробно про все эти вещи говорил. Почитать можно здесь — Программа для определения веса внутренних страниц сайта – PageWeight. Что касается Google, то эта поисковая машина понимает ссылки через javascript (ну разве что кроме самых хитрых), но понимает ли такие ссылки Яндекс – это до сих пор вопрос. Но если верить слухам, то вроде как пока Яша такие ссылки не сечет.

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

 

Редирект html

1
<meta http-equiv="refresh" content="0; url=http://partnerka.com?refid=183></meta>

В общем-то, сверху на скриншоте вы уже могли наблюдать код данного вида переадресации. Единственное, на что нужно здесь обратить внимание – это поле «content». Значение «0» можно изменять. Оно означает количество секунд до переадресации. Например, если поставим content=1, то переадресация произойдет через одну секунду. Переадресовывать будет на сайт, указанный в поле url. Вот в это поле и прописываем нашу реферальную ссылку.

Теперь по шагам, как все это делается. Открываем Notepad, он же блокнот. Я вообще стандартным блокнотом, который уже установлен по-умолчанию в системе, не пользуюсь. Использую Notepad2. Это тот же блокнот, только с расширенным функционалом. Но это так, к слову.

В общем, прописываем в этот файл код, который я указал выше, называем его(файл) «patnerka», сохраняем с расширением .html и закачиваем в специально созданную для этого папку. Даем название папке. Например, «my_papka». И после этого на всех страницах нашего сайта, где нужно замаскировать реферальную ссылку на урл «partnerka.com?refid=183» мы просто вместо реферальной ссылки указываем адрес, где лежит html файл на нашем сайте. То есть, в нашем случае это — «_http://mysite.com/my_papka/partnerka.html». И все, теперь при нажатии на ссылку вида _http://mysite.com/my_papka/partnerka.html пользователя будет переадресовывать на адрес _http://partnerka.com?refid=183

 

PHP редирект (301)

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

В случае, когда мы делали html редирект, мы создавали отдельный файл, который заливали на хостинг. В данном случае все то же самое. Создаем файл go.php, и в него прописываем следующий код:

1
2
3
4
5
6
7
8
9
10
11
<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: http://partnerka.com?refid=183");
    echo "<html><head><meta http-equiv=\"refresh\" content=\"0;url=$url\"></meta></head></html>";
    exit();
}
?></meta>

Здесь тоже можно задать задержку переадресации с помощью параметра sleep (0). Вместо нуля ставим, например, значение 1, и задержка при переадресации составит 1 секунду.

Сохраняем этот файл, после чего заливаем его в корневую папку сайта. Если это блог на WordPress, то закачиваем в папку, где находится wp-config.php.

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

Кстати, я писал вверху, что для реферальных ссылок создаем на сервере отдельную папку. И дали название этой папке «my_papka». Так вот, эту папку нужно не забыть закрыть от индексации с помощью robots.txt.




Ну и потом точно так же, как и в предыдущем примере, для того чтобы направить пользователя по нашей замаскированной реферальной ссылке _http://partnerka.com?refid=183, мы просто указываем вместо нее url адрес месторасположения нашего файла go.php на нашем сервере.

 

Редирект JavaScript

Этот вид редиректа делается по аналогии с предыдущим. Создаем новый текстовый файл через Notepad2, куда прописываем следующий код:

1
<html><head><script type="text/javascript"> window.location=" http://partnerka.com?refid=183";</script></head><body </body></body></html>

Этот файл сохраняем в формате html, и заливаем к себе на сервер. И далее, когда нам нужно направить пользователей по ссылке _ http://partnerka.com?refid=183, мы вместо этой ссылки, указываем url адрес, где файл со скриптом лежит у нас на сервере.

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

 

Директива модуля mod_alias

Кроме всего прочего можно делать редирект через htaccess. Это служебный файл, который находится в корневой директории сайта. В модуле mod_alias есть три директивы: Redirect, RedirectPermanent и RedirectMatch. Ниже пример для первых двух:

1
2
3
Redirect 301 / http://mysite.ru
Redirect permanent /index.html http://partnerka.com?refid=183
RedirectPermanent / index.html  http://partnerka.com?refid=183

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

1
RedirectMatch /(.*)\.html$ /$1.php

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

 

Директива модуля mod_rewrite

Иногда возникает необходимость организовать редирект с сайта с www на сайт без www. Сделать это можно опять же через служебный файл .htaccess, который находится в корневой директории сайта. Для этого в файле .htaccess прописывается специальная директива Redirect. А на хостинге должен быть включен модуль mod_rewrite. Практически на всех хостингах он присутствует. Команда задается следующим образом:

1
2
3
4
5
6
#включаем модуль и необходимую доп.опцию
RewriteEngine On
Options +FollowSymLinks
#две строки для переадресации с "без www" на "с www"
RewriteCond %{HTTP_HOST} ^site.com
RewriteRule (.*) http://www.site.com/$1 [R=301,L]

 

Заключение

Как видите, способов много. Но и то, это далеко не все. Я разных способов встречал еще больше. Но просто зачем лезть в дебри. Хватит и этого. Особенно если задача стоит всего лишь скрыть реферальную ссылку. А какие способы скрытия реферальных ссылок используете вы?

 




  • Newby

    чего-то нифига не понял, как делать 301 редирект.

    Есть партнерский шоп. Со стороны он выглядит как каталог товаров с партнерскими ссылками для каждого товара. То есть на каждой странице один товар и у него своя собственная ссылка на этот товар в настоящем магазине.

    Как в данном случае сделать редирект. Каждую страницу отдельно редактировать долго — там 1000 товаров.

  • Через htaccess сделать редирект

  • Newby

    Так вот и спрашиваю, как сделать 301 редирект партнерских ссылок.
    Видел партнёрский сайт  women-sumki. ru/c298/g548943/krossovki-cruyff-classics-point.html

    Не думаю, что человек создавал 10 тысяч пхп файлов.

  • При чем здесь php файлы? Я говорю про редирект через .htaccess в чистом виде. В таком случае не нужно создавать под каждую ссылку отдельный файл. Все это прописывается в одном файле — .htaccess

  • Newby

    Я про PHP редирект (301) писал.
    через .htacess с помощью Директивы модуля mod_alias ни одна комбинация не дает желаемого результата

    Найду решение — отпишусь, может кому пригодится.

  • Спасибо огромное за статью, облазила весь рунет в поиске ответа. Не работал редирект. Получилось только с файлом html.

Подпишитесь на рассылку блога
max1net.com:
Уже подписались человек
Укажите свой e-mail