Редирект по utm-метке

Волгарик
На сайте с 12.03.2007
Offline
92
3994

Под каждый рекламный канал созданы зеркала основного сайта (на поддоменах). Задача сделать переадресацию на зеркало основываясь на utm метке.

Например с адреса

site.ru/?utm_source=adwords&utm_medium=cpc&utm_campaign=professional_google

переадресовать на

adwords.site.ru/?utm_source=adwords&utm_medium=cpc&utm_campaign=professional_google

а с адреса

site.ru/?utm_source=yadirect&utm_medium=cpc&utm_campaign=professional_yandex

переадресовать на

direct.site.ru/?utm_source=yadirect&utm_medium=cpc&utm_campaign=professional_yandex

Набор меток и страниц не фиксированный, поэтому нужен универсальный метод, а не просто переадресация с конкретного урла на другой.

Помогите сделать через htaccess или php за :beer: , сам не бум-бум в регулярке/php

PEG
На сайте с 15.01.2006
Offline
164
PEG
#1

Помогу сделать с удовольствием. Мой скайп saitos.ru

Нужно лишь уточнить тех. нюансы

Знаю всё про Digital Marketing (https://www.mrkt.ng), помогаю в инвестициях у брокера (https://www.positive-x.net), разиваю свой Q&A сервис (https://emmabot.com).
siv1987
На сайте с 02.04.2009
Offline
427
#2
Волгарик:
Набор меток и страниц не фиксированный, поэтому нужен универсальный метод, а не просто переадресация с конкретного урла на другой.

Универсальный метод это когда utm_source = host. В utm_source=yadirect видим что это не так. Если и остальные названия не совпадают, то либо писать для каждого отдельный редирект, либо создать карту откуда => куда

Волгарик
На сайте с 12.03.2007
Offline
92
#3
siv1987:
откуда => куда

Да, так и получается. Про универсальность имел ввиду касательно остальных меток и текущей страницы.

LovelAss
На сайте с 05.06.2009
Offline
96
#4


$utm_redir = array(
'adwords' => 'adwords.site.ru/?utm_source=adwords&utm_medium=cpc&utm_campaign=professional_google',
'yadirect' => 'direct.site.ru/?utm_source=yadirect&utm_medium=cpc&utm_campaign=professional_yandex'
);
if (isset($_GET['utm_source']) && !empty($utm_redir[$_GET['utm_source']])) {
header('Location: '.$utm_redir[$_GET['utm_source']]);
die('Redirect');
}
Волгарик
На сайте с 12.03.2007
Offline
92
#5

Спасибо, LovelAss.

utm_source имеет 2-3 конкретных варианта, а остальные метки сильно варьируются, к тому же реклама ведет не только на главную страницу. То есть url (со всеми возможными вариантами) после домена должен полностью перенестись на новый домен.

Это как 301 редирект через .htaccess при переезде на новый домен, только при наличии конкретных меток utm_source.

Если бы я умел писать код, я бы в этот кусок .htaccess:

RewriteCond %{HTTP_HOST} ^site\.ru
RewriteRule ^(.*)$ http://yandex.site.ru/$1 [R=301,L]

добавил условие, чтобы редиректил только если в урл есть utm_source=yadirect

а в этот:

RewriteCond %{HTTP_HOST} ^site\.ru
RewriteRule ^(.*)$ http://google.site.ru/$1 [R=301,L]

добавил бы условие, чтобы редиректил только если в урл есть utm_source=adwords

J
На сайте с 20.02.2014
Offline
120
jkm
#6

Ну, так и проверять {QUERY_STRING} на наличие метки


RewriteCond %{HTTP_HOST} ^site\.ru
RewriteCond %{QUERY_STRING} utm_source=adwords
RewriteRule ^(.*)$ http://google.site.ru/$1 [R=301,L]

Если развивать тему создания карты откуда => куда


RewriteCond %{HTTP_HOST} ^site\.ru
RewriteCond %{QUERY_STRING} utm_source=([^&]+)
RewriteCond %1;;adwords=>google;yadirect=>direct; ^([^;]+);.*;\1=>([^;]+);
RewriteRule ^(.*)$ http://%2.site.ru/$1 [R=301,L]
Волгарик
На сайте с 12.03.2007
Offline
92
#7
jkm:
Ну, так и проверять {QUERY_STRING} на наличие метки

RewriteCond %{HTTP_HOST} ^site\.ru
RewriteCond %{QUERY_STRING} utm_source=adwords
RewriteRule ^(.*)$ http://google.site.ru/$1 [R=301,L]


Если развивать тему создания карты откуда => куда

RewriteCond %{HTTP_HOST} ^site\.ru
RewriteCond %{QUERY_STRING} utm_source=([^&]+)
RewriteCond %1;;adwords=>google;yadirect=>direct; ^([^;]+);.*;\1=>([^;]+);
RewriteRule ^(.*)$ http://%2.site.ru/$1 [R=301,L]

Большое спасибо, работает! денежки на 🍻 ушли по адресу :)

zenja
На сайте с 04.08.2010
Offline
139
#8

Волгарик, а расскажите, пожалуйста, зачем такие пляски? Больно интересно стало :)

Быть минимально гордым, быть максимально честным! Услуги по продвижению Ваших сайтов: прозрачно, качественно, недорого (/ru/forum/779787)
Волгарик
На сайте с 12.03.2007
Offline
92
#9
zenja:
Волгарик, а расскажите, пожалуйста, зачем такие пляски? Больно интересно стало :)

Для точного учета обращений клиентов с каждого рекламного канала. На зеркалах также свои номера телефонов.

Менять адреса в уже существующих рекламных кампаниях не охота, да и рейтинг объявлений обнулится из-за нового URL.

siv1987
На сайте с 02.04.2009
Offline
427
#10


$map = array(
'adwords' => 'adwords',
'yadirect' => 'direct',
);

if( $_GET['utm_source'] AND $map[ $_GET['utm_source'] ] )
{
$url = 'http://'.$map[ $_GET['utm_source'] ].'.site.ru'.$_SERVER['REQUEST_URI'];
header('Location: '.$url, false, 301);
exit();
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий