PHP头重定向在IE 8中不起作用

时间:2011-09-11 21:49:58

标签: php redirect internet-explorer-8 header

我正在使用PHP中的header(Location:'http:// ..')命令重定向。 它适用于FireFox和Chrome,但不适用于IE 8。 我收到错误: “Internet Explorer无法显示该网页” 虽然页面确实存在,但它确实存在。

可能是什么原因?

重定向功能:

function redirect($url, $statusCode = 303) {
    header('Location: ' . $url, true, $statusCode);
    die();
}

电话:

redirect("/page.php");

谢谢, 尼姆罗德。

2 个答案:

答案 0 :(得分:2)

PHP手册说:

  

HTTP / 1.1需要绝对URI作为»Location的参数:包括方案,主机名和绝对路径,但某些客户端接受相对URI。您通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI:

<?php
/* Redirect to a different page in the current directory that was requested */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

我认为IE8就是其中一种浏览器......

答案 1 :(得分:0)

也许您还需要将HTTP状态代码设置为3xx

之一