这个403错误重定向有什么问题

时间:2009-08-15 01:17:54

标签: php joomla webserver http-status-code-404 http-status-code-403

您已为joomla创建了一个error.php,可将404错误重定向到joomla文章。下面的代码适用于404错误,但403返回空白页面。我可以直接在我的脚本之外导航到页面,因此它必须是我的代码或它在环境中的交互方式。

由于 斯蒂芬

defined( '_JEXEC' ) or die( 'Restricted access' );
if ($this->error->code == 404)
{
Header( "HTTP/1.1 404 Not found" );
header("Location: http://www.queensberry.com/misc/filenotfound/");
} else if ($this->error->code == 403) {
Header( "HTTP/1.1 403 Restricted Content" );
Header( "Location: http://www.queensberry.com/restrictedcontent/" ); 
} else {
echo "hello world error code = " . $this->error->code;
}
?>

4 个答案:

答案 0 :(得分:6)

您应该使用Header("Loaction:...")或其他类似内容呈现“受限制内容”页面,而不是使用include(),然后退出。收到最有可能的403后,浏览器不会跟随位置标题。

答案 1 :(得分:5)

我感谢大家的帮助,但答案却让我朝着我所希望的方向发展。我想继续使用Joomla的error.php文件作为Joomla错误的目的地,但不是将页面格式化为看起来像是我想重定向到Joomla内容的网站的一部分。

最后我发现我需要的是出口;在我的脚本中。所以这是error.php,因为它现在正在工作。

defined( '_JEXEC' ) or die( 'Restricted access' );
if ($this->error->code == 404)
{
Header( "HTTP/1.1 404 Not found" );
header("Location: http://www.queensberry.com/misc/filenotfound/");
exit;
} else if ($this->error->code == 403) {
Header( "HTTP/1.1 403 Restricted Content" );
Header( "Location: http://www.queensberry.com/restrictedcontent/" ); 
exit;
} else {
echo "hello world error code = " . $this->error->code;
}
?>

答案 2 :(得分:1)

标题(“位置:”)导致标准重定向到新页面。 403错误仅在PHP呈现的页面上发送。因此,您有效地试图说(使用您发布的代码)“当前页面导致403错误”,但随后您将完全重定向到完全不同的页面。将403标题添加到http://www.queensberry.com/restrictedcontent/,您应该很好。您还需要对404标题执行相同的操作。

答案 3 :(得分:1)

如果(HTTP / 1.1 403),那么网络浏览器(Firefox,IE,Chrome,...)将忽略无论

位置:( bla bla bla)是。

不相信?

假设::您知道如何从Joomla站点生成错误代码403。 (我的意思是joomla_site / bla-bla-bla ::产生错误代码403)

让我们问一下 Web服务器是否给出了(基于你的error.php文件),如下所示:

... HTTP / 1.1 403受限制的内容 地点:http://www.queensberry.com/restrictedcontent/ ...

这些是基于你的error.php文件(我的意思是你的error.php文件可以按你的意愿工作

- 使用telnet 80检查

我们试试

c:\ telnet your_host:80

获取bla-bla-bla HTTP / 1.1

主持人:joomla_site

- 希望这能满足你的好奇心: - )

我再说一遍:

如果(HTTP / 1.1 403),那么网络浏览器(Firefox,IE,Chrome,...)将忽略无论

位置:( bla bla bla)是。