我试图从 PHP 页面显示 HTTP 错误文档,但我希望原始 URL 保留在地址栏中,以防止搜索引擎爬虫混淆并允许重新加载页面以防临时问题。
我在 PHP 中做了一个重定向函数,它有点像这样:
public static function Redirect($url, $code = '303 See Other') {
header('HTTP/1.1 ' . $code);
header('Location: ' . $url);
exit(0);
}
如果我想显示错误文档,例如 403 Forbidden,我会执行以下操作:Redirection::Redirect('/errordocs/403.php', '403 Forbidden');
它会正常工作。
正如我所说,用户 URL 将更改为/errordocs/403.php
我想要避免的。
header('Location: ' . $url);
如果 HTTP 代码是 4xx 或 5xx,我尝试做的是删除该行。我希望这会触发 Apache 显示正确的文档,因为我将 .htaccess 设置为指向相关的错误页面(它可以正常工作)。
我实际上从中得到的是标准的 Google Chrome 浏览器消息,用于当东西中断时,而不是我漂亮的自定义错误文档。
快速达成共识,现在最好的方法是什么?让它回显页面而不是重定向?