2009-07-06 85 views
0

我需要能够确定用户来自哪个页面,以确定显示哪些链接,例如面包屑或指向上一个下一个项目的链接。这基本上是PHP中的HTTP_REFERER功能,但我需要一种跨多页进行跟踪的方法。我还需要“支持”后退按钮。如何跟踪引荐页面以创建其他链接?

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

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

回答

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变得混乱,并可能传递给朋友。

+0

我不知道我得到你在说什么。不,我知道我无法使用sesion,因为人们在查看页面之前没有查看任何其他页面。我知道我不能使用HTTP_REFERER。那么,你是说ref标签是最好的还是别的什么?你似乎认为一切都是错误的。 – 2009-07-06 04:27:33