2013-04-24 40 views
0

我的根目录中有一个自定义的404错误页面。重定向到我的custom404错误页面php

我也编辑了我的.httaccess文件。

现在我想重定向到我的自定义404页面,如果某些情况在我的页面失败。

例如$ _SESSION [log] == 1失败。 所以我的问题是

1.什么代码,我应该在PHP中使用这样做呢?

2.如何使其他类型的错误,如401和许多其他类型的错误?

在我.httaccess页,我有这些行

ErrorDocument 404 http://mydomain.com/404custom.php 

而且我设计我的needs..Simple HTML页面404custom.php ...

+0

请显示您到目前为止的代码 – Cfreak 2013-04-24 15:45:04

+0

@Cfreak编辑.. – user2234992 2013-04-24 15:48:28

回答

1

1至重定向用户你可以使用:

<?php 
    header('Location: http://www.example.com/404.html'); 
?> 

但使用header()没有echo甚至没有空格之前,你一定不要发送任何数据。

2-对于其他错误:

ErrorDocument 400 /var/www/errors/index.html 
ErrorDocument 401 /var/www/errors/index.html 
ErrorDocument 403 /var/www/errors/index.html 
ErrorDocument 404 /var/www/errors/index.html 
ErrorDocument 500 /var/www/errors/index.html 
+0

也许值得发送一个HTTP头代码让浏览器知道发生了什么。 http://en.wikipedia.org/wiki/List_of_HTTP_status_codes – 2013-04-24 15:50:40

+0

@Chewie感谢您的回复.. 404.html?我的意思是我必须使用我的页面(404custom.php)或404.html是标准页面。 – user2234992 2013-04-24 15:50:57

+0

404custom.php也可以。只需提供您想要将用户重定向到的网址即可。 @JamesElliott我完全同意,你可以参考header()手册发送一个HTTP responde代码。 http://php.net/manual/fr/function.header.php – Chewie 2013-04-24 15:53:02

2

不要在错误的情况下发送Location头。改为发送正确的状态码。您必须根据http规范发送正确的状态码。

header("HTTP/1.0 404 Not Found"); 

为了显示正确的自定义网站,你已经在.htaccess文件中你的ErrorDocument语句。

特别是对于403未经授权错误发送正确的状态代码是很重要的,这样浏览器就可以准确地做出反应。