帝国 CMS 首页静态化
学完这篇,你能把帝国 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,后台和动态功能依赖它。
原文链接:https://www.gj0.com/thread-796.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。