帝国 CMS 首页静态化

liulian
liulian 初级会员超兽战士
发布于 2026-10-08 06:44 ·1 浏览 ·0 回复

学完这篇,你能把帝国 CMS 的首页从"每次访问都去查数据库"的动态页面,改成服务器直接吐出的 index.html 静态文件,并把自动刷新和服务器优先级一起配好。

第一步:确认首页模板和首页文件名

这一步要拿到两个信息:首页用哪个模板、静态文件叫什么名。进入后台顶部菜单「模板」→「模板管理」,在左侧模板组列表里选中你正在用的模板组(默认是「默认模板组」),右侧会列出该组所有模板。找到类型为「首页模板」的那一行,记下它的文件名(默认模板组里通常是 index.temp.php)。

再进入顶部菜单「系统」→「系统设置」→「网站基本参数设置」,切到「基本参数」标签页,找到「首页模板」和「首页文件」两项:首页模板下拉框选刚才那个模板,首页文件填 index.html。填完点页面底部的「提交」保存。

注意:如果你的模板组里首页模板文件名是自定义的,别照抄默认值,以模板管理页里实际显示的为准。

第二步:手动生成一次静态首页

这一步是把静态文件真正写到网站根目录。进入顶部菜单「系统」→「数据更新中心」,页面顶部就是「更新首页」区域(部分版本写作「刷新首页」),点击该区域右侧的「开始更新」按钮。等待几秒,出现「更新完成」提示即成功。

生成后到服务器上看:网站根目录(就是 index.php 所在的那一层)里应该多出一个 index.html。没有这个文件,后面全是空的。

注意:生成失败九成是权限问题。Linux 下网站根目录的属主必须是 PHP 运行用户(常见为 www、www-data 或 nginx),目录权限 755 且可写;Windows 下检查该目录是否被设为只读。改完权限再点一次「开始更新」。

第三步:让服务器优先返回 index.html

这一步决定访客访问域名时到底走静态还是动态。文件生成了但服务器还优先跑 index.php,等于白做。

  • Apache:编辑网站根目录下的 .htaccess,加一行 DirectoryIndex index.html index.php;没有 .htaccess 就改 httpd.conf 里对应的 DirectoryIndex 指令,把 index.html 排在 index.php 前面,改完重启 Apache。
  • Nginx:编辑站点配置文件,在 server 段里把 index index.html index.php; 中的 index.html 放最前,执行 nginx -t 检查语法,再 nginx -s reload。

注意:别直接删掉 index.php,帝国 CMS 后台、会员中心、搜索等动态功能都还要用它,只调整优先级即可。

第四步:配置自动刷新首页

这一步解决"发了新文章首页却还是旧的"。进入顶部菜单「系统」→「计划任务管理」→「增加计划任务」,任务类型选「刷新首页」,执行周期按需设置(例如每 30 分钟一次),保存。这样即使不手动点,首页也会定期重生成。

注意:有些服务器禁用了计划任务的触发机制,加完任务后先手动跑一次验证;另外首页静态化后,会员登录状态、购物车这类动态内容不会再实时显示在首页上,这是静态化的固有代价,需要保留就得用 JS 异步加载。

第五步:验证结果

浏览器打开 你的域名/index.html,右键「查看网页源代码」,看到的是纯 HTML 内容、没有 PHP 报错即为正常。再打开 你的域名/(不带文件名),如果显示的页面和 index.html 一致,说明优先级配置生效。

小结

  • 首页静态化要动三处:网站基本参数设置里的首页模板和首页文件名、数据更新中心生成文件、服务器 DirectoryIndex/index 指令调整优先级。
  • 只生成不调服务器优先级,访客看到的还是动态页。
  • 生成失败先查目录属主和写权限。
  • 静态首页不会自动随内容更新,必须靠计划任务或手动「开始更新」。
  • 别删 index.php,后台和动态功能依赖它。
版权声明:本文来自 GJ站长论坛《帝国 CMS 首页静态化》
原文链接:https://www.gj0.com/thread-796.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~