获取跳转前的url

WBOY
풀어 주다: 2016-07-06 13:53:45
원래의
1980명이 탐색했습니다.

例如从 淘宝那里修改一个链接,跳转到a.php
然后a.php又 hedader_location重定向到 b.php
在b.php 用 http_referer 获取到的是淘宝的url,请问用什么方法能获取 中间这个页面 a.php?

不希望是在a.php那里传值过去,因为有很多页面都跳转到b.php,在每个中间页面处理起来太麻烦

回复内容:

例如从 淘宝那里修改一个链接,跳转到a.php
然后a.php又 hedader_location重定向到 b.php
在b.php 用 http_referer 获取到的是淘宝的url,请问用什么方法能获取 中间这个页面 a.php?

不希望是在a.php那里传值过去,因为有很多页面都跳转到b.php,在每个中间页面处理起来太麻烦

首先如果在不在url里面传值,或者其他session cookie的情况下,能获取到来路的就只有reffer。

但是:
从这个事情的结果上讲
当浏览器打开一个301链接的时候,实际上是要求浏览器重新请求一遍新的提供的301目标地址。然后浏览器直接重新请求了新页面,并没有带上运行301的url。结果就是服务器与客户端并没有任何记录这个301页面url信息,谁也获取不到。

举个生活的例子,我们买了个中转的机票,在上第二架飞机的时候,你虽然拿出机票,那个飞机告诉你,飞机有问题,要你做另外一个飞机。然后我们拿这个票坐了另外的飞机,那这个飞机看到票的时候,只知道你第一架飞机是什么,并不知道是哪个飞机让你转过来的。机票就是在每次浏览器请求带上去的http-reffer

这也是在http协议的一些用户隐私策略中所提到的,并不是强制要求,只是说没有必要,如果http reffer被记录为跳转页面,那么点浏览器返回将又回到自己的页面上来,所以这个做法逻辑上也是讲得通。
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36
https://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html

document.referrer

如果不考虑IE67的话可以使用h5中的localstorage,至于cookie也能实现

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿