解决 301 重定向导致的 HTTP_REFERRER 为空的问题?

解决 301 重定向导致的 HTTP_REFERRER 为空的问题?

我有一个客户,他需要从大量“tinyurl”缩短的 URL 中确定流量统计数据,这些 URL 都重定向到他的网站。

  • 他使用过的服务包括 TinyURL、X.CO 和 Bit.ly 等等。
  • Web服务器是IIS6。
  • 托管服务是Godaddy.com,他的计划是“经济窗口”计划。
  • 这些缩短的 URL 仅指向根目录。

他知道他可以从大多数 URL 缩短的网站本身获得有限的报告,但他希望从自己的仪表板获取这些报告,并且能够将流量进一步重定向到他网络服务器上的另一个页面,甚至可能重定向到他自己的网络服务器之外的其他网络服务器,即他与之达成协议的其他网络服务器。最后一点对他来说非常重要,我的感觉是他可能想要出售重定向,并且需要显示流量统计数据才能做到这一点。

我尝试过使用 ASP、PHP 以及在客户端使用 Javascript,但还是无法检索 HTTP_REFERRER 信息。我所希望的信息根本就不存在。

是否有 IIS6 设置允许将此信息发送到客户端?我尝试过 Opera、Safari、Firefox、IE、Chrome……结果相同。在 Firefox 中,我看到“x.co”已设置在 cookie 中,但仅此而已。他真正感兴趣的部分是 x.co/。我还查看了他的 IIS 日志。我看不出访问来自任何特定的地方。有什么方法可以获取允许他进一步重定向网络流量的数据?

答案1

301/302 重定向的工作原理如下:

  1. 用户访问缩短的 URL
  2. 缩短 URL 服务返回重定向标头
  3. 用户的浏览器获取重定向标头并加载页面,而无需使用 HTTP_REFERRER

如您所见,问题不在于服务,而在于客户端浏览器。这就是重定向的工作方式。您必须 (a) 开始使用允许流量统计的 URL 缩短服务(即 DwarfURL),或 (b) 强制所有用户使用强制返回引荐的特定浏览器。

另请参阅这个帖子了解更多信息。

祝你好运!

相关内容