标题( “位置:/”); redirect适用于localhost,但不适用于远程服务器

时间:2012-06-17 14:29:33

标签: php apache localhost

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

重定向在localhost上完美运行,但在远程服务器上运行不正常。 使用$_SERVER可能更好吗? 即使我选择与具有重定向的文件位于同一目录中的文件,此重定向也不起作用。 希望你帮助我:)。

1 个答案:

答案 0 :(得分:4)

来自manual

  

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