Можно ли (и если да, как) получить реферера, когда пользователь нажимает на ссылку в электронном письме? Я не могу использовать <form>
теги в моей электронной почте, только чистые ссылки.
Я хочу показать специальное сообщение, если пользователь заходит на мой сайт, когда приходит из моей рассылки. Я заметил, однако, что при нажатии на ссылку в (не скажем, внешний вид) не предоставляется реферер.
echo "Refererer " . ($_SERVER["HTTP_REFERER"] ? $_SERVER["HTTP_REFERER"] : "Not provided");
При переходе с другого сайта реферер работает. Я предполагаю, что нет реферера тогда? Есть ли способ сказать «да, этот пользователь пришел по ссылке новостной рассылки»?
Один из обходных путей, о котором я думал, — это использование get-params
,
<a href="mysite.com/?ref=true">Visit now</a>
Без тестирования это должно работать, когда я явно ищу это get-param
, Это, однако, путь, которым я не хочу идти, так как я хотел бы иметь чистую URL
mysite.com/
Есть другие идеи? Это даже выполнимо с другими подходами?
Самый простой способ добиться этого — использовать пользовательский параметр referrer, поскольку многие почтовые клиенты (например, gmail). эксплицитно удаляет информацию о реферере, чтобы сайты не отслеживали то, что вы нажали на ссылку в электронном письме.
Если вы посмотрите на любую новостную рассылку, которую вы получили по электронной почте, вы увидите, что это обычно так.
Что вы можете сделать (если вы еще этого не сделали) — это извлечь функциональность, чтобы получить «referer» в общий метод, который вы можете вызвать, который будет искать любую доступную информацию о реферере и выбирать правильный.
Других решений пока нет …