给定的网址
www.example.com/a
将客户端重定向到其他位置:
www.somesite.com/b
如果我使用 Safari (9.1.3)访问(第一个)网址,我会被正确地重定向到新位置,但原始网址www.example.com/a
会被加载两次< /强>
Firefox 或 Chrome 浏览器不会发生这种情况,这是迄今为止针对此问题我测试过的唯一其他用户代理。
我从网络服务器访问日志(nginx)中获得了此行为的证据。
此外,当访问www.example.com/a
时,会将记录添加到example.com
服务器数据库的日志表中。使用Safari访问URL会导致创建两条记录。
我已经记录了第一个URL在第二次(大约)0到3秒后被点击。
我尝试了不同的重定向风格,状态为302 Found
和303 Other
。
我也尝试过(在HTTP标题中)指定过去的过期时间并在将来设置它(提前5 - 15 - 3700秒)。
这些变化都没有造成任何影响。
问题是:重新路由响应标头是否有问题导致此问题,或者我偶然发现了一些Safari奇怪的功能?
我的重定向响应标头如下所示:
HTTP/1.1 302 Found
Server: nginx
Date: Sat, 25 Feb 2017 23:24:19 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: Fat-Free Framework
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Cache-Control: max-age=15
Expires: Sat, 25 Feb 2017 23:24:34 +0000
Last-Modified: Sat, 25 Feb 2017 23:24:19 +0000
Location: http://www.somesite.com/b
答案 0 :(得分:0)
经过一些测试后,我发现这是Safari 9中的一个无害的错误,只有当URL(会导致重定向)被输入(或粘贴)到地址栏时才会发生。
通过网页上的html链接(或者像Mail这样的应用程序中的链接)访问URL不会导致URL的双击。
同样这个问题在Safari 10中消失了。