【发布时间】:2012-09-04 18:20:16
【问题描述】:
我知道当有人通过单击链接进入您的页面时,您可以获得 HTTP 引用。但是,当用户自己输入地址时,是否也可以确定用户在哪个页面上?
【问题讨论】:
我知道当有人通过单击链接进入您的页面时,您可以获得 HTTP 引用。但是,当用户自己输入地址时,是否也可以确定用户在哪个页面上?
【问题讨论】:
根据标准,当用户输入地址时,浏览器不得发送当前页面的地址。来自HTTP/1.1 header field documentation:
如果 Request-URI 是从没有自己的 URI 的来源(例如用户键盘的输入)获得的,则不得发送 Referer 字段。
以下是我之前的答案,与问题不完全匹配,但出于历史目的,我将其留在这里。
如果直接在浏览器中输入地址,则引荐来源网址将为空(或不存在),但这并不是您真正可以依赖的东西(即引荐来源网址可能因其他原因为空)。
引荐来源网址为空的一个显着原因是浏览器从安全模式切换到非安全模式时。
【讨论】:
当用户键入您的 URL(或单击书签)时,可能会有一些不起眼的浏览器将用户所在的任何 URL 作为 HTTP REFERER 发送,但通常不会。
【讨论】:
无法直接从键盘获取referrer
如果 domain 和 system 相同,您可以使用 Permanent Cookies 作为简单的解决方法
例子
setcookie("lastLink" ,$value, mktime (0, 0, 0, 12, 31, 2020));
用户随时返回,您可以检索最后一个链接$_COOKIE['lastLink']
【讨论】: