我已经阅读了一个教程,在该教程中他们创建了一个错误函数 当函数被调用时,它运行:
<?php
header('HTTP/1.0 404 Not Found');
include('errorpage.php');
exit();
?>
但那有什么用呢?为什么不能使用header('Location: errorpage.php')
或跳过header('HTTP/1.0 404 Not Found')
部分?
答案 0 :(得分:1)
如果你使用header('Location: errorpage.php')
,那么你说“你想要的文件可以在这里找到”。这是一个谎言。
如果您不包含header('HTTP/1.0 404 Not Found')
,那么您说“好了,这是您要求的文档”,然后显示错误消息。这是一个谎言。
如果错误页面是为了尝试从浏览器运行JavaScript,它将尝试将HTML作为JS执行并抛出错误。
如果客户端是搜索引擎,它会将错误页面编入索引,而不是将链接视为已损坏。这会在搜索中给你带来不好的结果。
如果客户端是下载工具,它会将文档下载为文件。如果它以递归方式进行,它可能会最终跟随服务器上错误页面的大量链接,并在占用大量带宽的同时填满用户的硬盘。
等等。
简而言之,如果您没有告诉客户这是一个错误,那么它会将其视为内容。