Раз уж начал про редиректы…
Цель. Написать скрипт, который будет:
- Отправлять новых посетителей по одному адресу, а повторных посетителей – по другому;
- Отправлять по конкретному адресу в зависимости от порядка посещения.
Что делаем? Ставим пользователю куки при каждом новом посещении.
Назовём наш куки keks. Просто так. Итак,
if (isset($_COOKIE['keks'])) $i=$_COOKIE['keks']+1; else $i=1; SetCookie("keks",$i,time()+3600*24*365*10);
В переменную $i записываем существующее значение куки плюс один. Если такого куки нет (первый заход) – то прописываем единицу. Следующей строчкой ставим/обновляем куки. В данном примере – на 10 лет, то есть фактически навсегда.
Итого имеем в $i номер посещения по счёту.
Направляем трафик так:
switch ($i) { case 1: header("location: http://yandex.ru"); break; case 2: header("location: http://mail.ru"); break; default: header("location: http://google.com?q=$i"); }
В примере выше при первом посещении человека отправит в яндекс, при втором – в мэйлру, при третьем и далее – в гугл. В гугле в поиске уже будет вбит номер нужного посещения (см. ?q=$i в предпоследней строчке – просто как пример). Можно добавить «case 3:», «case 4:» и т.д. для третьего, четвёртого и т.д. заходов.
Или мы можем чередовать сайты:
if ($1 % 2==1) header("location: http://google.com"); else header("location: http://yandex.ru");
Тут при первом посещении привет гуглу, при втором – яндексу, потом снова гуглу и т.д.
Как вариант хранить адреса в массиве:
$links = array("http://yandex.ru", "http://google.com", "http://searchengines.guru"); if ($i > count($links)) $i = count($links); header("location: ".$links[i-1]); // так как $i с одного, а массив с нуля
Всё. Вот полный скрипт:
супер! НО кинь плиз если не впадлу, скрипт, который из общего трафа определяет 10% (условно) мобильного и из этого мобильного еще 5% айфоней на ya.ru и 10% андроида на google.com.
Логика такая, что я хочу часть моб трафа, а именно айфоней сюда, а часть андроида сюда.
спасибо, если поможешь.
Уже два месяца прошло, но всё ещё впадлу)
Может, сделаю универсальный генератор кода для таких штук
Классно, написал. Я сам не селен в кодах. Можешь подсказать — нужно сделать редирект таким образом чтобы каждый клик по нему отправлял юзера на новую страницу, т.е. есть ссылка на сайте при клике по ней первого юзера отправит на sait-1, кликнет другой юзер уйдет на sait-2, 3й клик по ссылке отправит юзера на sait-3, и т.д. Каждый клик перенаправляет на новый сайт. Заранее спасибо, очень надеюсь на вашу помощь.
А зачем так делать? Просто сделать открытие каждого сайта с вероятностью 1/N, будет абсолютно тот же эффект, особенно на объёме.
Нет, ну конечно можно сделать, как описано, но это рушит все мои шаблоны. Тут надо бд в идеале использовать, считать посещения в таблице. Либо файл, что менее хорошо. Или дату создания файла править, например. Короче, нужно что-то независящее от клиента править, в отличие от того, что делаю в данной статье.
Всё ещё нужно так заморочиться? Я могу, но смысла не вижу пока)
Не работает какнужно. Редирект пишется в кеш, браузер запоминает первый редирект и всегда по нему отправляет, любые изменения файла не вступают в силу.
Ну это уже вопрос к настройкам сервера. Чтобы обойти кеширование, можно использовать параметр перехода либо какой-нибудь рандомный параметр (многие рекламные сети предоставляют либо одно, либо другое). То есть уникализировать ссылку, например дописав &rnd=этот параметр.