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

发布于 2024-12-04 05:01:00 字数 393 浏览 0 评论 0原文

我在 PHP 中使用 header(Location : 'http://..' ) 命令进行重定向。 它可以在 FireFox 和 Chrome 中运行,但不能在 IE 8 中运行。 我收到错误: “Internet Explorer 无法显示该网页” 尽管该页面确实存在。

可能是什么原因呢?

重定向功能:

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

呼叫:

redirect("/page.php");

谢谢, 尼姆罗德。

I'm using in redirecting by header(Location : 'http://..' ) command in PHP.
It's working in FireFox and Chrome but not in IE 8.
I'm getting the error:
"Internet Explorer cannot display the webpage"
and it's though the page is indeed existed.

What may be the reason for it?

The redirect function:

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

The call:

redirect("/page.php");

Thanks,
Nimrod.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

玩世 2024-12-11 05:01:00

PHP手册说:

HTTP/1.1 需要绝对 URI 作为 » 位置的参数:包括方案、主机名和绝对路径,但某些客户端接受相对 URI。您通常可以使用 $_SERVER['HTTP_HOST']、$_SERVER['PHP_SELF'] 和 dirname() 自己从相对 URI 中创建绝对 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 就是这些浏览器之一......

The PHP manual says:

HTTP/1.1 requires an absolute URI as argument to » Location: including the scheme, hostname and absolute path, but some clients accept relative URIs. You can usually use $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] and dirname() to make an absolute URI from a relative one yourself:

<?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;
?>

I think IE8 is one of those browsers...

怼怹恏 2024-12-11 05:01:00

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

Perhaps you also need to set the HTTP status code to one of 3xx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文