如何跟踪引用页面以创建其他链接?

时间:2009-07-06 03:46:59

标签: http referrer canonical-link

我需要能够确定用户来自哪个页面以确定要显示的链接,例如面包屑或前一个下一个项目的链接。这基本上是PHP中的HTTP_REFERER功能,但我需要一种在多个页面上跟踪它的方法。我还需要“支持”后退按钮。

我注意到Facebook使用查询/获取参数“ref”来跟踪引用页面。 (他们也避免重新加载整个页面,而是使用AJAX,但我现在没有足够的预算。)此外,我正在处理的网站需要由Google编制索引,因此这种方法也会要求我添加canonical link tag

我想知道ref / referrer查询参数是最好的方法还是其他选项?

1 个答案:

答案 0 :(得分:3)

如果你想要面包屑,你根本不应该使用HTTP_REFERER。它应该是一条合理的路径,无论它们来自哪里,都可以到达User > Albums > AlbumName > Photo,即使它们来自他们的朋友给他们的直接链接。也就是说,如果您想要返回几页,只需将它们存储为SESSION变量中的数组。

我非常确定Facebook只使用ref GET变量来收集用户正在使用哪些按钮的统计信息,因为有多种方法可以访问同一页面。

这些都不会破坏后退按钮,也不会影响您的规范标记。


来自评论:您可以使用?ref=blah标记或会话变量($_SESSION['history'][0] = $_SERVER['HTTP_REFERER']REQUEST_URI)。使用你最容易找到的任何东西。会话变量依赖于cookie或通过URL传递ID,GET只会使URL混乱并可能传递给朋友。