404 错误 是 web 服务器在被要求提供无法找到的资源时返回的响应。
1. 它应该看起来仍然像您的网站
如果您没有专门告诉您的 web 服务器如何处理 404 错误,它将提供一个非常简单且通用的错误页面。页面上只写着类似于“未找到 - 服务器上没有找到请求的 URL.”的文字,背景是纯白色。这对用户来说是毫无帮助的,并且会造成非常糟糕的体验。404 页面应该看起来像一个错误页面,但它仍然应该像您的网站。如果您使用的是 CMS,那么这可能已经为您处理好了。如果您有一个静态网站,您可以通过您的 .htaccess 文件指定一个 404 模板。
2. 道歉
没有人会故意访问您的 404 页面。大多数情况下,他们是从您自己网站或其他地方的错误链接进入的。他们可能不太高兴,因此这是一个向他们道歉并希望能扭转他们糟糕心情的绝佳机会。
3. 搜索
他们要查找的页面可能仍然存在,只是 URL 发生了更改,或者是在某个地方被错误输入了。由于您的网站应该已经拥有搜索功能,因此这是一个将搜索框放在显眼位置的好机会。这为用户提供了搜索他们尝试链接到的内容并为自己找到正确 URL 的机会。
4. 为读者提供有用的链接
他们链接到的页面可能没有损坏,只是不再存在了。除了搜索功能,您可能还想提供一些他们会觉得有用的链接。例如,链接到主页、存档页面或您已知的网站上经常访问的页面或热门页面?
5. 联系方式 / 错误报告
访问 404 页面的用户可能会产生强烈的情绪。他们可能会非常担心,或者感到担忧,或者他们可能非常生气。为他们提供一个发泄情绪的方式是个好主意,而您无法为他们提供一个沙袋,所以一个联系表格可能会有帮助。这当然不仅对他们有利,对您也有利,因为您可以了解问题所在,以便修复问题或阻止问题再次发生。
6. 自动报告
让用户通过联系表格帮助您报告错误非常棒,但只有少部分用户会这样做。另一种方法是让您的 404 页面自动向您报告错误。您可以通过多种方法来实现这一点。一个快速而肮脏的方法是将您的 404 页面设为 PHP 文件,并使用邮件函数发送访问的 URL 的电子邮件。
<?php
mail("[email protected]", "404 report", $_SERVER['REQUEST_URI'], "From: [email protected]\n")
?>
注意:以上代码对于小型网站可能没问题,但对于高流量网站来说并不实用。在这种情况下,将错误写入数据库可能更实用。
7. 幽默
即使是严肃的网站也可以在 404 页面上添加一点幽默。这绝对是一个放轻松一点,做一些有趣事情的好机会。
8. 重定向?
我对这一点持保留意见,但可以自动将 404 错误重定向到另一个页面。例如,主页上显示一条关于错误的提示?或者是一个包含从 URL 解析出的关键词的搜索页面?
9. 文件大小
你可能会惊讶于你的 Web 服务器必须处理多少恶意活动。有一件事让我在一段时间前感到惊讶,那就是有多少请求是针对“奇怪”文件的。例如,请求奇怪子文件夹中的 favicon 或寻找不存在的随机图像。当这些东西没有出现时,服务器会加载你的 404 页面。不用说,为所有这些请求提供完整的网页会增加大量的带宽。你最好的办法是抵制这些恶意请求,但你也要注意考虑你的 404 页面的总页面大小,并在带宽成为主要问题时减少它。
我同意你的观点,你的 404 页面应该很有趣。我订阅了一些网站,因为它们的页面令人印象深刻且有趣。
我想说,你也不应该真正显示状态码,普通用户不会知道 404 或 500 代表什么。不过这是一篇好文章!
如果你的网站是针对精通技术的用户的(比如 css-tricks),那么最好显示状态码。404 代码比句子“抱歉,您要查找的页面未找到”更能说明问题所在。
是的,我不确定这一点…… 仅仅因为用户不知道错误代码的意思并不意味着永远不要显示它。错误代码可以为他们提供信息,帮助他们了解问题的更多信息。
我个人认为应该始终包含它;只要有针对普通网页用户的解释,让他们知道发生了什么。
指出一份最佳实践 404
http://www.useit.com/asdasda
Jakob Nielsen 显示了错误代码,并且仍然保持了有用性。我敢肯定他在这方面也做了很多研究。
实际上,该页面设计得非常糟糕,几乎无法阅读…… 所以我想说这是一个不行的例子。
我必须同意 Melody 的观点,它确实很糟糕。尤其是常见错误,服务器应该处理 htm/html 问题,而不用让用户操心。
如果这是一个复杂错误,你需要错误代码来获得帮助(我喜欢这个代码与相关的英文消息一起出现,但无论如何)。它应该很小,并且会
对于普通的 404,我相信它非常普遍,每个人都见过它。当你提到 404 和网站时,人们通常会知道页面无法工作,因为它是通用的,并且默认情况下会显示该数字。
是极客会更进一步,指出世界上每个“404”的出现,但那是因为我们是特殊的。
我更喜欢一些非常简单但影响很大的信息,或者一些有趣的图像用于 404 错误页面。
不错的文章。
我还注意到网站已经略微更新(新的评论标题,不再有实时预览……)
我非常喜欢新的 Expore 部分!:)
很棒的文章,谢谢。这让我思考了我们的错误页面。在 SUSU.org,我们有一个相当超现实的错误页面……(试试看)…… 有什么感觉告诉我它可以改进!
你还可以使用一个名为 Linkpatch 的工具来帮助监控和修复断开的链接等。 http://www.linkpatch.com.
在这里获取一个免费的 5 个站点帐户
https://www.linkpatch.com/free/
总是喜欢看到新的 404 页面,我们非常喜欢这种细致入微的设计。
你错过了一个重要的事情,就是确保你的错误页面发送了正确的标头信息。否则,它只是一般的页面,这样就失去了 404 的意义。像 firebug 这样的简单工具会显示响应标头信息。
虽然我们的页面没有那么酷或有趣,但它包含了基本原理。看看: http://www.tintedpixel.com/404
那确实是一个可爱的 404 页面,但我发现它缺少一个真正基本的东西 - 你输入了“- missing uri ”,应该是 url 吗?
感谢你的赞美!更多关于 URI 的信息可以在这里找到: http://en.wikipedia.org/wiki/URI
嘿 chris,
当我将代码放入发送电子邮件中时,我收到了一封包含 404 页面 URL 的电子邮件。
嘿 Justin,
假设我刚醒来的大脑思考正确的话,那么出于某种原因,当你触发自定义 404 页面时,你被重定向到它,而不是将其视为某种别名。
尝试使用 $_SERVER[‘HTTP_REFERER’] 而不是 $_SERVER[‘REQUEST_URI’]。这将显示用户来自的页面,该页面应该是他们试图访问的页面。
只是一个想法,
Dave Blencowe,
[email protected]
我会同时使用两者,这样我就能知道可能存在指向失效页面的链接。
抱歉,双重评论,代码被剥离了。
<?php
mail(‘[email protected]’, ‘404 错误已找到’, ‘用户在从 ‘.$_SERVER[‘HTTP_REFERER’].’ 跳转到 ‘.$_SERVER[‘REQUEST_URI’].’ 时检测到 404 错误。’, ‘[email protected]’);
?>
Chris,
针对 #8,我认为不应该进行重定向,但应该尝试从 URL 中解析关键词,然后显示一个 HTML 网站地图。如果某些关键词与 HTML 网站地图中的锚文本匹配,则将其加粗以引导用户到他们需要的位置。
但是,您需要考虑到 URL 仅仅包含乱码的情况,在这种情况下,它可能没有关键词,或者无法通过“like”匹配来识别单词拼写错误。
我同意。不要重定向——用户可能只是在 URL 中拼错了单词。如果重定向,就无法纠正拼写错误了 ;-)
不错的主题,但我曾在 Smashing Mag 上看到过类似的内容,但这个也很好,给你点赞,Criss!
很棒的文章!我见过许多 404 页面,它们很有趣但无用,你的建议更有意义。我会尝试使用自动报告功能。
幽默是最好的选择!我以前从未认真考虑过 404 页面——因为我不是技术宅——但将来会认真考虑。
我认为它应该看起来像正常页面,但带有稍微幽默的道歉信息!最令我恼火的是页面不断出现相同的愚蠢笑话!我希望它像正常页面一样布局,但有一个搜索框用于查找更多信息。
感谢您的信息
此外,只有我感觉评论有点奇怪/无聊吗?我更喜欢以前的那个 :)
这听起来可能有点愚蠢,但尝试忘记您对 404 页面的喜好和厌恶。你们是网页设计师。除非您的网站是为网页设计师设计的,否则您喜欢的可能与用户喜欢的(和理解的)大相径庭。
一点幽默可以是一个不错的点缀。但不要忘记,用户在您的网站或他们获取链接的网站上经历了糟糕的体验后,可能会遇到 404 页面。他们可能不会觉得您的俏皮设计有什么好笑。
我经常听到可用性人员抱怨 404 对非技术用户来说毫无意义。这是真的,但只要您用通俗易懂的语言解释发生了什么事,就没有理由删除代码 404。毕竟,我们许多人确实知道它的含义。
自动重定向用户是一个糟糕的主意。您需要专注于解释发生了什么。即使您在重定向到的页面上提供一条消息,它也跳过了解释出现错误这一步骤。
通过重定向用户到另一个页面,您并没有真正帮助任何人。让他们自己决定要做什么。
我的 WordPress 网站会保留一个包含 404 错误的 RSS 订阅源。非常有用!
http://banzaidesign.nl/wp-admin/options-general.php?ak_action=404_feed
你是怎么做到的?
兄弟。太棒了——可能有点技术宅,但对系统管理员来说很有趣。还有,你是怎么做到的?是特定的插件吗?
那么,在 #6 中,那行 php 代码只是 404.php 页面中的第一行吗?如果不是,那么您将此代码放在哪里?谢谢!
嗨,
那行代码只是对 PHP 的原生文件函数 (https://php.ac.cn/mail) 的调用。
它可以放在 404 页面中的任何位置,只要它不在标签内,文件扩展名为 .php 并且在支持 PHP 的服务器上运行,并且您的主机允许您访问邮件函数(有些主机由于垃圾邮件问题而禁止使用)。
如前所述,数据库选项可能更合适。
Dave Blencowe,
[email protected]
非常好的建议,以后会在 HiddenCSS 上跟进!*去重新设计 404 页面*
幽默的元素很好,有助于弥补被重定向到不存在的页面的恼人因素
对于没有结果的搜索查询也是一个好主意
自动从 URL 中提取关键词的谷歌搜索栏效果非常好。
对于其余部分,请说明“404”,解释发生了什么,以及建议的操作(转到存档、主页),但也建议(检查拼写,点击这里报告链接)
就是这样。
-TEMC
您需要能够从销售项目的角度来看待它。如果您为客户创建专业网站,那么创建 404 页面来解释错误,并建议其他页面(都使用网站主题)可能是更合适的选择。
另一方面,如果您正在开发一个氛围更轻松的网站,那么幽默的方法可能有效,让用户更有动力继续浏览网站,从而减少很多挫折感。
关键在于判断您的目标受众,而不是您自己喜欢什么。
Dave Blencowe,
我让谷歌改变了他们 404 页面的想法
之前
http://www.marketingmartin.se/sokmotorernas-fel-404-sidor/
现在
http://www.marketingmartin.se/marketingmartin-far-google-att-andra-sig/
这是一篇很棒的文章,我一定会重新审视我的 404 页面!
我最近一直在使用 http://notipal.com/。我的一位朋友创建了它,我喜欢它!
GitHub 在示例中使用的 Google 搜索框是 Google 一段时间前发布的用于增强 404 页面的脚本。
显然它也旨在提供更具体的建议,但我从未见过它这样做——我认为他们可能放弃了这个想法。
更多信息请访问 http://googlewebmastercentral.blogspot.com/2008/08/make-your-404-pages-more-useful.html
有用的文章,感谢您的建议。
您可能对“如何使用 WordPress 创建 SEO 友好且创意的 404 页面”感兴趣 http://www.webair.it/blog/2009/03/16/how-to-seo-friendly-and-creative-404-page-with-wordpress/
我之前一直在考虑 404 页面,这就是我们处理 404 的方式 http://geekcom.net/404.php
很棒的文章。错误页面在创建网站时通常是事后才想到的,但它们是维护良好关系的一种方式,即使事情出错。
在自动报告错误时,请发送页面地址和引用页面以帮助解决问题。
我个人不会重定向,用户可能会对他们没有获得想要的内容感到困惑,并且可能需要更新旧的书签。重定向页面上的错误消息可能有所帮助,但效果可能不如专门的页面。此外,请记住用户可能只是输入了错误的 URL。
好主意,我认为。
我会尝试在我的新设计中应用它 :D
很好的建议——同样适用于您向用户显示的所有错误(主要是 403、404 和 500)
您遗漏了应该向浏览器(和搜索引擎)发送正确的标头。
至于是否显示错误代码——大多数人都足够精通网络,知道 404 表示“未找到”,因此我会将其包含在内——但请确保您对问题进行了一些通俗易懂的描述。
另外——在自动报告中——您可能希望在错误报告中包含更多详细信息(尤其是对于 500 错误),而不是显示给用户(不要向他们显示出现问题的 SQL 查询)。
我投票反对自动重定向……感觉有点突兀,很多用户不会再回去尝试不存在的页面吗?
无论页面是否实际显示 404,它都应该返回 HTTP 404 响应。这并不总是由框架提供,有时根本不会处理。如果您的 404 页面返回 200 响应,则没有任何东西可以阻止 Google 或其他搜索引擎对其进行索引并在其内容中返回它。如果您页面返回 200 响应且不包含通常与 404 错误关联的“404 未找到”消息,则这种情况更有可能发生。
本质上,每个错误页面都是一个重定向。我经常将此页面制作成索引页面的克隆,并通过评论进行增强。在没有关于发生了什么事的评论的情况下,将用户重定向到主页无疑是网络托管的极端做法。预计会收到带有绿色错字“我的页面在哪里?”的电子邮件。
我是一个日志文件阅读者。大部分 404 错误是由来自外部的链接造成的。这些访问者是您网站的新用户,因此最好向他们展示 (1) 发生了什么,(2) 您的网站是关于什么的,以及 (3) 他们周围正在等待哪些精彩且相关的内容。除了错误信息,我还提供了一个搜索菜单。我不建议使用文本搜索的表单字段,因为没有人会在他们不了解的网站上使用它。展示您网站的主要主题。如果有人没有找到大象的特定图片,请将他带到所有动物图片所在的页面,因为他显然对动物图片感兴趣。访问者可能会发现一些他意想不到的东西。还有什么比这更好的呢?
与其说是行业标准的“最佳实践”,不如说是“良好的可用性建议”。设置正确的搜索引擎标头怎么样?Google Analytics 跟踪?等等。
但是……我绝对喜欢“噢,糟糕”的 404 页面。经典
了解一下错误代码,不仅仅是 404。如果需要重定向,则它不是 400 系列,而是 300 系列代码。
嘿,Chris,你的 404 页面上有一个重大错误……
“查找我们的一些特色文章,并查看我们可爱的 sponors” 应该是 sponsors
好文章。这也有助于 SEO。
不错的文章。感谢提供信息。
几个月前,英国的 .NET 杂志也报道了这个问题,也值得一看……
同意。道歉和幽默是一个很好的方法。在 404 页面上提供站点地图也很有帮助。
真的需要第 6 点(发邮件)吗?我个人认为定期检查服务器错误日志就足够了。AWStats(和其他统计脚本)会列出哪些 URI 导致了 404 错误以及它们的访问频率,通常设置起来并不需要任何努力(每个使用 cPanel 的主机都可以在 cPanel 中访问 AWStats,其他主机通常也可以在他们的管理面板中访问)。
我非常喜欢这篇文章,但是您提到了几种可能导致这个错误页面出现的原因,为什么不通过大多数工作来找出原因呢?使用您的 PHP $_SERVER 变量来识别请求是来自用户手动输入的 URL/旧书签(没有 REDIRECT_SCRIPT_URI),还是来自您页面上的一个错误链接(用户在您发现错误之前就找到了这个链接,并且重定向脚本 URI 来自您的域名),并提供有用的链接来帮助用户解决自己的问题,或者表示更真挚的歉意,因为这确实是您的错误。
如果用户知道自己在找什么,搜索框似乎是一个好主意,但是如果他们只是从某个 URL 缩短器(现在孩子们都在使用这个)那里得到了一个朋友发来的链接,怎么办呢?
只是一个想法,可以让它更加个性化。
不是 404,但我最喜欢的错误页面之一:
http://www.woot.com/Errors/500.html?aspxerrorpath=/blog/viewentry.aspx
他们的 404 页面也解决了技术术语的问题。
http://woot.com/asdask
很棒的文章!
我的网站 (http://www.pdwd.net) 的 404 错误会重定向回主页,但它是一个单页面网站。我认为对我来说这是最好的解决方案。
404 错误页面很容易实现,并能带来专业感。我认为您应该添加错误代码和说明,这样那些不知道 404 错误是什么的人就可以有机会学习。
幽默的角度在解决“404 挫折感”方面绝对是赢家!
Chris Coyier 关于 404 错误的这篇文章信息量很大。我从中学到了很多。
请观看我的 404 页面 http://designfire.ru/404.php
抱歉,我的英文不好,我是一名乌克兰设计师:)
自动报告很棒:D
好文章。
虽然我认为这取决于网站的大小,但这些建议都很有用...我认为,如果网站规模很大,提供替代链接是解决此问题的最佳方法。
如果网站规模相对较小,我认为道歉是最好的方法。
做得好!目前我正在使用一个简单的文本,并在 3 秒后重定向到主页。但一旦我有时间,我会对它进行更多修改,也许添加一些额外的链接,或者放一张漂亮的道歉图片。
这是我的:
http://www.room404.ie/error
一个好习惯——我之前在网站设计中就使用过这种方法。
http://www.scphotogs.com/error
如何在博客环境中实现这一点——那里的 PHP 对我来说有点令人困惑......
404 页面是一个做疯狂事情的好机会。
我已经在这里制作了十多个有趣的 404。
http://chtivo.webhost.ru/404/
感谢您发布这篇很棒的文章。
我现在就去创建我的 404 页面。
我喜欢它的幽默元素——它可以缓解紧张,从用户的角度来看,它有助于缓解这种情况。
非常感谢!!!
我认为 404 页面的最佳理由是让失效的页面保持活跃。如果该页面不再存在,404 页面有助于保持链接的活动状态。对于那些不再提供产品的网站,我会保留内容,添加“不可用”的说明,并删除“立即购买”按钮。
我为自己的 404 错误页面创意 开发了一个想法。
我必须承认,404 页面是我应该多花点时间的地方。
这里有一些很棒的建议,如果它能帮助访问者并减少他们有时遇到的困惑,那么它绝对值得付出努力。
坦率地说,除了上面列出的所有想法,我还想补充一点:
使用 Google Analytics 跟踪 404 页面。
这很有帮助。
更多信息:http://analytics.blogspot.com/2006/09/tip-tracking-404-pages.html
我更喜欢它,而不是邮件的想法。
嘿,我也非常喜欢这个 ^^
http://www.the-podcats.tv/404.html
它让我笑;)
重定向是绝对不行的(但不幸的是非常流行)。例如,考虑一个用户
他刚刚在地址栏中手动输入了“http://site-name/page-name.htlm”。
使用重定向,他必须从头开始重新输入;
没有它,他只能纠正“html”的拼写。同样的情况也适用于
用户从其他地方(可能是
电子邮件,他意外地包含了一个标点符号),关闭
其他应用程序,粘贴 URL——现在必须重新打开其他
应用程序,复制 URL,…
很少有错误页面会有趣到足以弥补这种烦恼。
错误页面应该始终确保原始 URL 名称被保留。
重定向只在可以提供正确页面时才可接受 (301, 302)——但那时它就不是真正的错误页面了。