网站
自定义错误页面
A custom error page replaces the plain server default with your own branded HTML, while keeping the true error status so search engines still see a real 404. This guide covers adding a page for each…
自定义错误页面用你自己的品牌化HTML替换普通的服务器默认页面,同时保留真实的错误状态,以便搜索引擎仍然能识别真正的404错误。本指南涵盖为每个支持的错误代码添加页面、出于安全考虑会删除哪些内容,以及验证徽章的工作原理。
KPanel中错误页面的位置
- 登录到 KPanel。
- 点击左侧边栏中的网站,然后点击相应网站。
- 在网站的标签栏中,打开高级,然后选择错误页面。
直接访问地址为 /websites/<site-id>/error-pages。

为什么要设置
默认的服务器错误页面是一条死路。它没有品牌标识、没有导航、没有解释,访客登陆到这样的页面通常就会离开。
自定义页面可以将其转变为返回网站的途径:你的标志、你的字体、用你自己的语言写的一句话,以及返回首页或搜索框的链接。在大型网站上,输入错误和过期的URL会源源不断地产生流量,而404页面是你能构建的最低成本的恢复手段。
支持的错误代码
你可以为八个错误代码各设置一个自定义页面,每个代码一个页面:
| 代码 | 含义 | 典型原因 |
|---|---|---|
| 400 | 请求错误 | 格式错误的请求 |
| 401 | 未授权 | 需要身份验证或验证失败 |
| 403 | 禁止访问 | 访问规则阻止了请求 |
| 404 | 未找到 | 该URL处不存在任何内容 |
| 500 | 内部服务器错误 | 你的应用程序失败 |
| 502 | 网关错误 | 应用程序没有正确响应 |
| 503 | 服务不可用 | 应用程序宕机或超载 |
| 504 | 网关超时 | 应用程序花费的时间过长 |
从404开始。这是迄今为止最常见的错误,也是访客通过常规浏览到达的唯一一个,而不是由故障引起的。
5xx系列值得接下来做,因为这些是人们在你最糟糕的日子里看到的页面。一个平静的品牌化页面,说明出了问题并提供电子邮件地址,远好于空白的服务器错误。
添加页面
- 点击添加错误页面。
- 从下拉菜单中选择错误代码。已使用的代码不会在列表中显示。
- 用你自己的HTML替换HTML 正文字段中的示例HTML。
- 点击添加错误页面。
编辑器以一个可工作的404文档开始,你可以对其进行编辑,如果你只是想快速得到整洁的页面,这是一个合理的起点。
编写HTML
提供一个完整的HTML文档,以doctype开头。它将原样提供,因此必须能够独立运行。
在页面保存之前,某些HTML会因安全考虑而被删除:
<script>标签- 内联事件处理程序,如
onclick - iframe
- 远程样式表
如果删除了任何内容,保存后会显示警告。
由于远程样式表会被删除,错误页面无法引入网站的主CSS文件。使用内联CSS或在文档头中放置 <style> 块来设置样式。这是有意为之的:错误页面必须在网站其余部分损坏时仍能呈现,而依赖于从故障服务器获取资源的页面将在最不合适的时刻显示为无样式的文本。
实用指南:
- 保持小而独立。 将所有内容内联。避免外部图片。页面列表显示每个页面的大小(KB)。
- 用简明的语言说明发生了什么。 "我们找不到该页面"比"404未找到"要好。
- 提供前进的方向。 返回首页的链接、指向主要部分的链接或搜索框。
- 在5xx页面上包含联系方式,因为访客无法通过网站与你联系。
- 不要用它来重定向。 如果URL已移动,应该正确地重定向它。参见 网站重定向。
状态代码保持不变
你的自定义页面以真实的错误状态提供,而不是200。404始终保持为404,一直到客户端。
这比听起来更重要。作为200返回的品牌化页面是软404:搜索引擎会将其作为真实页面索引,你的分析统计会将其计为成功浏览,任何工具都不会标记破损链接。因为Kapsule保留真实状态,所有这些都继续正常工作。
阅读状态徽章
状态列报告实际可以验证的内容,对限制的说法故意保持诚实。
| 徽章 | 含义 |
|---|---|
| 验证成功:已提供品牌化页面(真实404) | 我们从外部强制发出404请求,收到你的页面并返回了正确的状态 |
| 已配置(未进行外部测试) | 页面已应用。该错误代码无法从外部按需触发 |
| 尚未验证 | 检查尚未运行 |
| 已应用,实时测试结果不确定 | 探针收到了其他内容而不是干净的404,通常是因为重定向截取了它 |
| 收到404但未提供品牌化页面 | 规则已配置但你的页面未返回。请尝试重新保存 |
只有404可以从外部强制触发。请求不存在的URL会可靠地产生404,但没有办法让正常的服务器在不破坏它的情况下产生真正的500错误。因此,其他代码报告已配置,而不是声称永远不会发生的验证。当错误真正发生时,它们仍然会提供服务。
你也可能看到一个警告,说服务器上的另一个配置声称拥有相同的域名。在解决之前,错误页面可能不会应用。如果看到此警告,请联系支持。
对实际出现错误的网站进行故障排除
如果你在这里是因为网站抛出错误而不是因为你想要更好看的页面,页面有一个快捷方式:顶部横幅中的使用Kora进行故障排除按钮。
它要求Kora(KPanel内的助手)读取你的错误日志和该网站最近的故障,并告诉你可能的原因和修复方法。这比阅读原始日志要快得多。
对于基础性能概览,请参见 网站性能和APM,对于一段时间内的错误率,请参见 网站流量分析。
编辑和删除
每一行都有一个编辑按钮(打开相同的编辑器,代码固定,HTML已加载)和一个删除按钮。
删除会要求确认并说明结果:触发该错误代码的请求将回退到服务器默认页面。
故障排除
我的页面没有显示。 确认你触发的是正确的代码。进行重定向的路径永远不会到达404。使用一个确实不存在的URL进行测试,在隐私窗口中进行以避免缓存问题。
页面显示但看起来没有样式。 你的样式表作为远程资源被删除了。内联CSS。
我的跟踪脚本丢失了。 脚本根据设计被删除。无法从自定义错误页面运行JavaScript。
所有代码都已有页面。 八个都已使用。编辑现有页面而不是添加另一个。
徽章显示品牌化页面未被提供。 重新保存页面。如果问题仍然存在,且没有出现域名冲突警告,请开启工单。