谁点击了从网站A到网站B的链接?

假设我有一个名为网站A的网站,它有一些链接到其他网站。 其中一个链接可能是指向网站B的链接。有没有办法,使用一些现有的解决方案,开源,或者你需要支付的东西,你可以在哪里跟踪谁,什么,在哪里等点击链接从网站上去A到网站B?

网站B可能是Stackoverflow,我的网站是www.websiteA.com,所以在我的网站上,我有一个链接到www.stackoverflow.com。 如果用户从我的页面点击www.stackoverflow.com,我想捕获信息,例如姓名,电话等(不确定我是否可以这样做,除非用户实际登录我的网站)。 在这种情况下,这是一个公共页面,任何人都可以访问。 如果我不能从我的网站上做到这一点,有没有办法告诉stackoverflow这个特定的人点击我的链接进入你的网站,我需要他们的信息。

大多数网站使用的方法是让您网站上的脚本处理重定向。 因此,而不是直接链接到:

http://websiteB.com

链接类似于:

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

“链接”脚本记录请求,然后将它们转发到地址(这应该立即完成,不要给他们“在3秒内转发给网站B!”页面)。

请注意,作为您网站的访问者 ,我更喜欢一种方法,当我将鼠标hover在链接上时链接的目的地显而易见,而不是某些网站使用的方法,只要您看到的是ID。 我的意思是,而不是链接是这样的:

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

他们改为有这样的链接:

http://websiteA.com/link/483

显示目的地可以通过几种方式实现。 一种方法就像我上面描述的那样,其中目标是查询字符串的一部分。 或者,您可以使用一些Javascript。 通过设置window.status变量,可以使用Javascript更改状态栏的值,但许多浏览器默认情况下会阻止此操作(例如,Firefox)。

谷歌通过实际使用Javascript更改链接而不是状态栏,找到了解决这个问题的偷偷摸摸的方法。 加载页面时,结果列表中的链接将转到其实际目的地,但每个链接都有一个onmousedown javascript事件,当您单击它时会更改链接。 您可以通过右键单击链接来查看此操作。 完成此操作后,将鼠标hover在链接上将显示状态栏中的真实目的地(Google的点击跟踪脚本),而不是结果的真实url。

当然,用任何方法显示的信息可能是对我实际上要发送的地方的错误陈述,但我仍然更喜欢看到无意义的身份证号码。

尝试使用HTTP_REFERER

您可以随时检查引用者,但这可能是欺骗性的。

 Request.UrlReferrer.ToString 

除此之外,您可以在网站A的链接上附加一个额外的查询参数,以便了解它们的来源:

  

如果您控制网站B,那么您只需在日志记录中使用http_referer部分。 否则,您将需要在站点A上有一个重定向页面,它记录该URL,然后将浏览器重定向到另一个站点/页面。

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

网站中的重定向页面重定向到..

 "http://" + request['url']