рефереры через редирект

orphelin
На сайте с 02.07.2006
Offline
261
725

Добрый день!

Подскажите, кто сталкивался.

На сайте сменили урлы страниц, со старых на новые идет редирект через модереврайт.

Появилась проблемка - теперь рефереры фиксируются новых страниц, а не источника.

Т.е. раньше было:

Яндекс -> страница -> заказ (зафиксировался реф. - яндекс)

Теперь:

Яндекс -> старая стр. -> редирект 301 -> новая стр -> заказ (зафикс. реф. новая стр)

может php-редирект позволит избавиться от этой проблемки?

Ragnarok
На сайте с 25.06.2010
Offline
239
#1

header("location: http://site.ru/pagenew?ref=pageold"); типа того

//TODO: перестать откладывать на потом
gormarket
На сайте с 29.12.2010
Offline
47
#2

Можно и при редиректе через .htaccess добавить в строку запроса прараметр "ref=старая_страница", а в PHP-коде страницы выдернуть содержимое этой переменной в качестве источника реферера

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
orphelin
На сайте с 02.07.2006
Offline
261
#3
gormarket:
Можно и при редиректе через .htaccess добавить в строку запроса прараметр "ref=старая_страница", а в PHP-коде страницы выдернуть содержимое этой переменной в качестве источника реферера

а можно наглядный пример? и так чтобы потом HTTP_REFERER в итоговом урле не фигурировал? был бы благодарен.

gormarket
На сайте с 29.12.2010
Offline
47
#4

Невозможно при редиректе сохранить старый адрес не вставив его в новый урл, т.к. новый урл это единственный носитель, через который можно передать старый адрес.

Это справедливо и для php-редиректа (то что предложил Ragnarok) и для редиректа через .htaccess

Выглядеть это будет где-то так

RewriteRule ^старая_страница$ новая_страница?ref=$0 [L,R=301,QSA]

и получится "http://сайт/новая_страница?ref=старая_страница"

Есть правда надежда, что можно еще сделать это через cookie:

при редиректе через PHP сначала установить cookie со значением ref=старая_страница

и только потом сделать редирект на "http://сайт/новая_страница"

при редиректе через .htaccess тоже есть возможность установки cookie (добавление кроме флагов [L,R=301,QSA] еще и cookie [L,R=301,QSA,CO=ref:старая_страница:сайт], тогда добавлять в новый урл "?ref=старая_страница" не нужно.

А потом на новой странице из cookie получать источника реферера.

Но на практике назначение кук одновременно с редиректом делать мне не приходилось, нужно экспериментировать, может и получится.

orphelin
На сайте с 02.07.2006
Offline
261
#5
gormarket:
Есть правда надежда, что можно еще сделать это через cookie:

при редиректе через PHP сначала установить cookie со значением ref=старая_страница
и только потом сделать редирект на "http://сайт/новая_страница"

при редиректе через .htaccess тоже есть возможность установки cookie (добавление кроме флагов [L,R=301,QSA] еще и cookie [L,R=301,QSA,CO=ref:старая_страница:сайт], тогда добавлять в новый урл "?ref=старая_страница" не нужно.

А потом на новой странице из cookie получать источника реферера.

Но на практике назначение кук одновременно с редиректом делать мне не приходилось, нужно экспериментировать, может и получится.

спасибо за наводку! самое приемлимое решение, попробую реализовать.

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