Php 标题(“位置:/”);重定向适用于本地主机,但不适用于远程服务器
重定向在本地主机上工作得很好,但在远程服务器上不工作。 也许使用Php 标题(“位置:/”);重定向适用于本地主机,但不适用于远程服务器,php,apache,localhost,Php,Apache,Localhost,重定向在本地主机上工作得很好,但在远程服务器上不工作。 也许使用$\u服务器更好? 即使我选择与使用重定向的文件位于同一目录中的文件,此重定向也不会工作。 希望您能帮助我:)来自: HTTP/1.1需要一个绝对URI作为»位置:包括方案、主机名和绝对路径的参数,但有些客户端接受相对URI。您通常可以使用$\u服务器['HTTP\u HOST'],$\u服务器['PHP\u SELF']和dirname()从相对URI中生成绝对URI: 我认为您需要一个空格:标题(“位置:/”,不过,我认为您最好
$\u服务器更好?
即使我选择与使用重定向的文件位于同一目录中的文件,此重定向也不会工作。
希望您能帮助我:)来自:
HTTP/1.1需要一个绝对URI作为»位置:包括方案、主机名和绝对路径的参数,但有些客户端接受相对URI。您通常可以使用$\u服务器['HTTP\u HOST']
,$\u服务器['PHP\u SELF']
和dirname()
从相对URI中生成绝对URI:
我认为您需要一个空格:标题(“位置:/”
,不过,我认为您最好在实际的URL中进行替换。我似乎记得在某个地方读到过,这是一个缺陷或bug,header(“Location:mypage.php”)
根本不起作用。要重定向到服务器根目录,可以使用header('Location:'。$\u server['HTTP\u HOST')@JaredFarrish:对不起,它不起作用。如果我认为它是在位置标题中使用/
的“问题”的答案,我会将它作为答案发布。解决这个问题的简单方法是放弃这种技术,使用真正的路径。我得到了你的代码,我的代码工作得非常完美。我的if..else结构有问题。重定向在那里不起作用
if (condition)
{
#lol. Some code here
}
else
{
header("Location:/");//i'm trying to redirect to the root
}
<?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;
?>