在PHP中显示404页面的正确方法?

时间:2015-10-02 17:27:35

标签: php html http-status-code-404

所以目前当用户加载不存在的页面或出现问题时 - 我使用PHP中的header将用户重定向到404页面:

header('Location: www.website.com/404'); //This is simplified intentionally

此页面显示404图标,其中包含返回主页的链接以及其他一些信息

最近在Google网站管理员工具中,我收到了一些消息,我没有正确返回404页面。

显示404页面时,我应该返回http_response_code吗?或者我应该以不同的方式处理404?

3 个答案:

答案 0 :(得分:2)

您可以使用此...您需要在根文件夹上创建.htaccess

<强>的.htaccess

Redirect 301 /index.html http://example.com/newdirectory/

答案 1 :(得分:1)

任何互联网抓取工具/蜘蛛或工具都有404状态代码未找到,因此您最好输出状态代码,以便知道该页面是什么

你可以通过输出像这样的原始标题来做到这一点

<?php
if(!authorized){
  header("HTTP/1.0 404 Not Found");
  header("Location: http://www.website.com/404");
}
echo "*OUTPUT*";
?>

但仅此一项会导致安全问题,因为其余页面输出正在输出并仍在执行:

$ curl http://localhost/stackoverflow/404.php
*OUTPUT*

所以你应该在重定向后退出,所以代码将是这样的:

<?php
if(!authorized){
  header("HTTP/1.0 404 Not Found");
  header("Location: http://www.website.com/404");
  exit;
}
echo "*OUTPUT*";
?>

现在它将在重定向

后停止执行
$ curl http://localhost/stackoverflow/404.php
$

为了更安全,请使用htaccess。

答案 2 :(得分:0)

htaccess 404错误代码

设置完404页面后,您只需向此页面发送错误网址的访问者即可。要执行此操作,只需将以下行添加到.htaccess文件中:

ErrorDocument 404 /404.php

通常,.htaccess文件位于服务器上的home root public_html文件夹中。例如,如果您从public_html中的特定文件夹中运行您的站点或博客,则可以更改。

或者,您可以将404错误模板放在文件夹中的任何位置。例如,您可以将所有错误消息放在名为errormessages的文件夹中,将404错误引用到页面的URL。

ErrorDocument 404 /errormessages/404.php

这就是它的全部内容。

现在,当访问者在您的网站上查看不正确的网址时,他们会看到您的自定义404错误消息。其解释很清楚here.