PHP中的自定义404错误页面

4
我是一名PHP新手,希望你能帮我解决这个问题。如何在PHP中创建自定义的404错误页面,而不是跳转到其他页面。
例如:mysite.com/no-where 页面no-where不存在。我想在该URL上显示带有设计的404错误消息。
如何获取当前URL?我在这方面遇到了错误。因为我想检查标题是否为404。
$url = $_SERVER['REQUEST_URI'];
$array = get_headers($url);
$string = $array[0];
if(strpos($string,"200")) {
    echo 'url exists';
} else {
    echo 'url does not exist';
}

1
创建一个 404.php 页面或 404.htm 文件,使用您喜欢的任何样式,并在 .htaccess 中执行 ErrorDocument 404 /404.php,对吧?或者这被认为是太“老派”了吗? - Funk Forty Niner
不,我不想将用户重定向到其他页面。我想在他/她当前浏览的URL上准确显示错误消息。 - user3745440
好的,我们等待Wayne的回答。 - Funk Forty Niner
"ErrorDocument 404 /404.php" 不会改变您原始的URL。在浏览器中,它仍将保持为“mysite.com/no-where”。 - anubhava
当我尝试时,出现了错误:“所请求的URL /no-where在此服务器上未找到。此外,在尝试使用ErrorDocument处理请求时遇到了404 Not Found错误。” - user3745440
谢谢!我已经找到错误了! - user3745440
6个回答

8
创建一个 .htaccess 文件,并将以下行放入其中:
ErrorDocument 404 /errorpageFileName.php 

这将把页面“errorpageFileName.php”设置为您的404错误页面。当然,您可以根据自己的喜好更改文件名。

您可以在此处深入了解: Apache中的自定义404错误问题


2

拥有正确的404错误页面非常重要,因为:

  • 它可以帮助您的网站/网络应用程序访问者找到您网站上正确的位置
  • 更好的搜索引擎优化
  • 看起来更加专业

除了这里提供的答案,我建议您为不同的错误类型设置不同的消息。例如,在您的.htaccess文件中定义不同的错误页面以处理不同类型的失败:


ErrorDocument 500 /500.html
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html

关于自定义404错误页面的更多信息。


1
如果您正在使用Apache作为Web服务器,您可以在网站的根目录中创建一个名为.htaccess的文件。这可以包含各种规则,包括错误处理,如下所示:
ErrorDocument 404 (Your site error 404 page URL)

例如:

ErrorDocument 404 http://example.domain/custom-404-page.html

1
在.htaccess文件中添加这一行。
ErrorDocument 404 "Page not found."

0

使用404头部,然后需要您的404模板/页面。

header('HTTP/1.0 404 Not Found');
include '404.php';
exit;

或者你可以配置Apache以提供自定义页面。


0

如果您正在使用Apache作为Web服务器和cPanel,则只需单击菜单错误页面,选择404错误未找到并使用自定义HTML页面进行编辑,然后保存。您将在文件夹中获得自动文件404.shtml。

如果您正在使用VPS OpenLiteSpeed和WebAdmin面板,则有错误未找到,并填写您的自定义404 HTML页面。

如果您的面板是OpenLiteSpeed的CyberPanel,则只需创建自定义的404 HTML页面(例如:404.html),然后编辑您的vHost Conf并填写以下行:

errorpage 404 {
  url                     /404.html
}

并保存它


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接