Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php header(“Location”:将我带到一个显示404的页面,但如果我在新选项卡中复制url,它将打开_Php_Apache2 - Fatal编程技术网

Php header(“Location”:将我带到一个显示404的页面,但如果我在新选项卡中复制url,它将打开

Php header(“Location”:将我带到一个显示404的页面,但如果我在新选项卡中复制url,它将打开,php,apache2,Php,Apache2,我在做什么 $returnpath = $_POST['returnpath']; header("Location: $returnpath"); $returnpath为“/blogs/write” 它继续前进并装载 它给出了Apache404NotFound页面。 我在谷歌浏览器中点击Ctrl-r或者点击刷新按钮,页面仍然是404 如果我复制完整的url并将其粘贴到一个新选项卡中,页面会显示!如果我用404将指针放在该页面的url栏中并按enter键,页面将加载!检查您的Apache日志

我在做什么

$returnpath = $_POST['returnpath'];
header("Location: $returnpath");
$returnpath为“/blogs/write”

它继续前进并装载

它给出了Apache404NotFound页面。 我在谷歌浏览器中点击Ctrl-r或者点击刷新按钮,页面仍然是404


如果我复制完整的url并将其粘贴到一个新选项卡中,页面会显示!如果我用404将指针放在该页面的url栏中并按enter键,页面将加载!

检查您的Apache日志,查看在您尝试重定向时遇到404错误时尝试检索的页面。然后您将确定该页面是否为url编码问题e、 打字错误或其他问题

另外,在将$\u POST['returnpath']值转储到头指令之前,请先对其进行一些健全性检查。否则,您将遇到一个明显的开放重定向漏洞

无论何时编写函数,默认情况下,PHP都会尝试加载其参数中提到的完整URL。因此,如果编写代码:-

<?php
header("Location: relative_uri");
exit();
?>

然后PHP将加载一个URL为“
相对uri
”而非“
http://example.com/relative_uri
”,其中“
example.com
”是您的域名

因此,请尝试在“
header()
”函数的参数中写入完整的绝对URL


希望有帮助。

尝试完整的url,这在技术上是标题所必需的。尝试发送一个完整的绝对url,地址为:header(无论如何应该是这样)。否则可能是某种形式的无关空格。所有的否决票是怎么回事?如果你否决票,至少给出一个理由…@Earlz-谢谢你的更改。