我正在使用PHP中的header(Location:'http:// ..')命令重定向。 它适用于FireFox和Chrome,但不适用于IE 8。 我收到错误: “Internet Explorer无法显示该网页” 虽然页面确实存在,但它确实存在。
可能是什么原因?
重定向功能:
function redirect($url, $statusCode = 303) {
header('Location: ' . $url, true, $statusCode);
die();
}
电话:
redirect("/page.php");
谢谢, 尼姆罗德。
答案 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
之一