Вопрос по apache, localhost, php – заголовок ( «Location: /»); редирект работает на локальном хосте, но не на удаленном сервере

3
if (condition)
{
#lol. Some code here
}
else
{       
header("Location:/");//i'm trying to redirect to the root
}

Redirect отлично работает на локальном хосте, но не на удаленном сервере. Может быть, все лучше использовать$_SERVER? This redirect wouldn't work even if i choose file in the same directory as file with redirect. Hope you help me :)

@JaredFarrish Это не работает, извините. treng
Я получил ваш код, и мой код работает отлично. Что-то не так с моей конструкцией if..else. Перенаправление там не работает treng
Чтобы перенаправить в корневой каталог сервера, вы можете использовать заголовок («местоположение:». $ _ SERVER [«HTTP_HOST»]); Zencode.dk
Если бы я подумал, что это был ответ на «проблему» использования/ в заголовке местоположения я бы разместил его как ответ. Самый простой способ исправить это - отказаться от этой техники иuse a real path. Jared Farrish
Я думаю, что вам нужно место:header("Location: /") Хотя, я полагаю, вам лучше заменить реальный URL. Я помню, что где-то читал, что это недостаток или ошибка,header("Location: mypage.php") работает на всех. Jared Farrish

Ваш Ответ

1   ответ
4

Отруководство:

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

Похожие вопросы