На нашем сервере объявлений мы используем следующий простой PHP script для перенаправления на целевую страницу объявления:
<?php
$lp=array_key_exists('lp',$_REQUEST)?trim($_REQUEST['lp']):"";
$location = sprintf('Location: %s', $lp ) ;
header( $location ) ;
?>
script принимает свой параметр lp
и перенаправляет на этот URL. Цель состоит в том, чтобы мы могли сканировать наш журнал доступа для отслеживания кликов (URL-адрес также включает параметр id, который игнорирует script).
У нас есть один клиент (которого я знаю до сих пор), где это не работает последовательно, но только в IE 8 и старше. URL с проблемой:
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 (что doesn не существует). Кажется, что это происходит при первом нажатии на объявление; иногда последующие клики следуют за перенаправлением правильно, иногда они продолжают идти по плохому 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