У меня есть код вроде:
header('Refresh: 15; url=' . $url);
Это прекрасно работает, за исключением случаев, когда люди посещают этот URL через Twitter (размещается у клиента Hootesuite). По-видимому, во всех браузерах, кроме IE, это работает правильно. С IE, из ссылки Hootesuite, это не обновляется должным образом; прямая ссылка.
Зачем?
Я всегда выступаю за комбинацию, чтобы избежать проблем с неизбежным пользователем WebTV:
Если клиент Twitter использует сокращение ссылок, тип перенаправления может повлиять на IE непредвиденным образом.
Оказывается, поскольку URL-адрес, который мы используем, устанавливает cookie, а Hootsuite создает фрейм, этот IE не будет доверять стороннему файлу cookie (наш сайт). Поэтому я добавил на страницу код фреймбастера и вызвал его «сразу», если браузер является IE. Код ниже:
<meta http-equiv="refresh" content="15;url=<?php echo $url ?>" /> <script type="text/javascript"> var timeout = 1; if (navigator.userAgent.match(/MSIE/)) { timeout = 1; } else { timeout = 14500; } setTimeout('if (top != self) top.location.replace(self.location.href)', timeout); </script>
Возможно, когда-нибудь это поможет некоторым другим случайным пользователям.
Например, устали ли вы, например, заголовок местоположения.
$url = "http://www.example.com/"; header("Location: " . $url);