Захватить, кто нажал ссылку с веб-сайта A на веб-сайт B? - PullRequest
0 голосов
/ 03 апреля 2009

Предположим, у меня есть веб-сайт под названием Веб-сайт A, и на нем есть ссылки на другие веб-сайты. Одной из этих ссылок может быть ссылка на веб-сайт B. Есть ли способ, используя какое-либо существующее решение, открытый исходный код или что-то, за что вы должны заплатить, где вы можете отслеживать, кто, что, где и т. Д. Щелкнул ссылку, чтобы перейти с веб-сайта А на сайт Б?

Веб-сайт B может быть Stackoverflow, а мой веб-сайт www.websiteA.com, поэтому на моем веб-сайте есть ссылка на www.stackoverflow.com. Если пользователь нажимает на моей странице www.stackoverflow.com, я хочу получить такую ​​информацию, как имя, телефон и т. Д. (Не уверен, что смогу ли я это сделать, если пользователь не вошел на мой веб-сайт). В данном случае это общедоступная страница, доступ к которой может получить любой пользователь из любой точки мира. Если я не могу сделать это с моего сайта, могу ли я сообщить stackoverflow, что этот конкретный человек нажал на мою ссылку, чтобы перейти на ваш сайт, и мне нужна его информация.

Ответы [ 4 ]

12 голосов
/ 03 апреля 2009

Метод, используемый большинством сайтов для этого, заключается в том, чтобы скрипт на вашем сайте обрабатывал перенаправление. Таким образом, вместо прямой ссылки на:

http://websiteB.com

ссылка идет на что-то вроде:

http://websiteA.com/link/websiteB.com

Сценарий "link" регистрирует запрос и затем перенаправляет его на адрес (это должно быть сделано немедленно, не дайте им "перенаправить вас на сайт B через 3 секунды!").

Обратите внимание, что как посетитель на ваш сайт, я предпочитаю метод, при котором назначение ссылки становится очевидным, когда я наводю указатель мыши на ссылку, а не метод, который используют некоторые сайты, когда все, что вы видите, это идентификатор Я имею в виду, вместо ссылки что-то вроде:

http://websiteA.com/link/websiteB.com

вместо этого у них есть такая ссылка:

http://websiteA.com/link/483

Показ пункта назначения может быть достигнут несколькими способами. Одним из способов является то, что я описал выше, где назначение является частью строки запроса. В качестве альтернативы, вы можете использовать Javascript для этого. Значение строки состояния можно изменить с помощью Javascript, установив переменную window.status, но многие браузеры предотвращают это по умолчанию (например, Firefox).

Google нашел хитрый способ обойти эту проблему, фактически используя Javascript для изменения ссылки вместо строки состояния. Когда страница загружена, ссылки в списке результатов переходят к их фактическим местам назначения, но каждая ссылка имеет событие javascript onmousedown, которое изменяет ссылку при нажатии на нее. Вы можете увидеть это в действии, щелкнув правой кнопкой мыши по ссылке. После того, как вы это сделаете, при наведении курсора на ссылку теперь будет отображаться истинное место назначения (скрипт отслеживания кликов Google) в строке состояния вместо реального URL-адреса результата.

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

0 голосов
/ 03 апреля 2009

Если вы контролируете веб-сайт B, тогда вы просто используете часть http_referer в журнале. В противном случае вам потребуется страница перенаправления на сайте A, которая записывает URL-адрес, а затем перенаправляет браузер на другой сайт / страницу.

http://siteA/redirect?url=siteB/page

страница перенаправления на сайте перенаправляет на ..

"http://" + request['url']
0 голосов
/ 03 апреля 2009

Вы всегда можете проверить реферера, но это может быть подделано.

Request.UrlReferrer.ToString

Кроме этого, вы можете добавить дополнительный параметр запроса к ссылкам с веб-сайта A, чтобы вы знали, откуда они пришли:

<a href="www.websiteb.com?from=websitea">
0 голосов
/ 03 апреля 2009

Попробуйте использовать HTTP_REFERER

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...