在我们的广告服务器上,我们使用以下简单的 PHP 脚本重定向到广告的着陆页:
<?php
$lp=array_key_exists('lp',$_REQUEST)?trim($_REQUEST['lp']):"";
$location = sprintf('Location: %s', $lp ) ;
header( $location ) ;
?>
该脚本采用其lp
参数并重定向到该 URL。目的是为了让我们可以扫描访问日志以跟踪点击次数(URL 还包含一个 id 参数,脚本会忽略该参数)。
我们有一个客户(我目前知道的)这并不能始终如一地工作,但仅在 IE 8 和更早版本中。有问题的网址是:
http://webutil.bridgebase.com/v2/ad_lp.php?id=340&lp=http%3A%2F%2Ftravelinsingles.com%2Fhome.htm
这应该重定向到http://travelinsingles.com/home.htm,但有时它会转到http://webutil.bridgebase.com/home.htm(不存在)。它似乎总是发生在第一次点击广告时;有时后续点击正确地遵循重定向,有时他们继续转到错误的 URL。
我在我们的网络服务器上执行了数据包捕获,看起来我们正在发送正确的标头:
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.2.1
Date: Thu, 06 Jun 2013 01:39:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
X-Powered-By: PHP/5.4.15-1
Location: http://travelinsingles.com/home.htm
我捕获了失败和成功的重定向,除了日期之外,标题是相同的。
我使用的是Mac,所以我使用BrowserStack来测试IE,这限制了我在客户端的调试能力。有谁知道这可能是什么原因造成的,如果我们可以做些什么来解决它?
我用 BrowserStack 的截图功能重现了这个问题:
http://www.browserstack.com/screenshots/3659c3b992a1738594d2fd370caef2852fecb3fa