船说 CMS 网站 404 页面怎么设置

liulian
liulian 正式会员超兽战士
发布于 2026-10-07 16:00 ·0 浏览 ·0 回复

学完这篇,你能让船说CMS站点在访问不存在的页面时,正确返回 404 状态码并显示一个自己设计的 404 页面,而不是跳回首页或者暴露出错信息。

第一步:先搞清楚 404 由谁负责

404 是服务器给出的 HTTP 状态码,CMS 只负责这个页面的内容长什么样。很多人只在后台做了"找不到就跳首页",结果状态码是 200 或 302,搜索引擎会认为首页有大量重复内容,这是典型的"软 404"。

所以正确做法是两件事分开做:服务器负责返回 404 状态码,船说CMS 负责提供一个好看的 404 页面。

注意:不要用 <meta http-equiv="refresh"> 或 JS 跳转来做 404,那样状态码不会是 404。

第二步:做一个 404 页面文件

在网站根目录(宝塔面板默认是 /www/wwwroot/你的域名/)新建一个 404.html,这是所有方案都要用到的文件。

最简单的可用版本:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>页面不存在 - 船说CMS</title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
  <h1>404</h1>
  <p>你要找的页面不存在或已被删除。</p>
  <p><a href="/">返回首页</a></p>
</body>
</html>

注意:页面里的 CSS、图片路径要写成 /static/... 这种以斜杠开头的绝对路径。用相对路径的话,在 /a/b/c 这种深链接下会全部加载失败。

第三步:让 Nginx 接管 404

如果你用的是宝塔面板:登录面板 → 左侧「网站」→ 找到你的站点 → 点「设置」→ 弹窗里选「配置文件」,在 server { } 花括号内加入一行:

error_page 404 /404.html;

保存后点「重载配置」或重启 Nginx。

服务器根目录要能访问到这个文件,通常站点配置里已经有 root /www/wwwroot/你的域名;,把 404.html 放在这个目录下即可。

如果你用的是 Apache,就在站点根目录的 .htaccess 里加:

ErrorDocument 404 /404.html

第四步:让船说CMS 的不存在内容也走 404

访问 /article/9999.html 这种不存在的文章时,请求会先进入船说CMS 的路由。船说CMS 基于 ThinkPHP 内核,需要两步:

  1. 后台伪静态设置:登录后台(默认入口 /admin.php),在左侧菜单找「系统设置」→「伪静态设置」(部分版本叫「URL 规则」),选择与你的 Nginx 规则匹配的那一套,保存。
  2. 模板目录放一份 404:把第二步做的 404.html 复制一份到 /template/你正在用的模板目录/404.html,部分版本会优先调用模板目录下的 404 文件。

如果内容不存在时仍然显示白屏或报错页,检查 runtime 目录里有没有报错日志,通常是伪静态规则和实际规则不匹配导致的。

第五步:验证状态码是否正确

打开终端执行:

curl -I https://你的域名/一个不存在的页面.html

返回结果里必须看到 HTTP/1.1 404 Not Found。如果显示 200 或 302,说明请求被伪静态规则或 CMS 路由接管并跳转了,要回到第三步和第四步排查。

注意:如果站点接了 CDN,刚才访问过的错误地址可能已被缓存。改完后要到 CDN 控制台做一次缓存刷新,否则本地测出来永远是老结果。

小结

  • 404 = 服务器返回 404 状态码 + CMS 提供页面内容,两件事分开做。
  • 页面文件放网站根目录 404.html,内部资源一律用 / 开头的绝对路径。
  • Nginx 加 error_page 404 /404.html;,Apache 加 ErrorDocument 404 /404.html。
  • 船说CMS 后台要配置伪静态,再把 404 文件复制到当前模板目录。
  • 用 curl -I 确认状态码真的是 404,别用跳首页冒充。
  • 接了 CDN 的站点,改完记得刷新缓存。
版权声明:本文来自 GJ站长论坛《船说 CMS 网站 404 页面怎么设置》
原文链接:https://www.gj0.com/thread-385.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~