Перенаправление заголовка PHP не работает в IE 8 - PullRequest
0 голосов
/ 12 сентября 2011

Я использую команду перенаправления по заголовку (Location: 'http: // ..') в PHP. Он работает в FireFox и Chrome, но не в IE 8. Я получаю ошибку: "Internet Explorer не может отобразить веб-страницу" и хотя эта страница действительно существует.

В чем может быть причина?

Функция перенаправления:

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

Звонок:

redirect("/page.php");

Спасибо, Нимрод.

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

В руководстве по PHP написано:

HTTP / 1.1 требует абсолютного URI в качестве аргумента для »Местоположение: включая схему, имя хоста и абсолютный путь, но некоторые клиенты принимают относительные 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один из тех браузеров ...

0 голосов
/ 12 сентября 2011

Возможно, вам также нужно установить код состояния HTTP на один из 3xx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...