“手机站静态化”的目标是:将原本由 PHP 动态生成的手机页面,转换为 .html 后缀的静态 HTML 文件,这样做的好处非常明显:

(图片来源网络,侵删)
- 加载速度快:服务器直接发送 HTML 文件给浏览器,无需执行 PHP 代码和查询数据库,响应速度极快。
- 降低服务器负载:减少了 PHP 引擎和数据库的访问压力,能承受更大的并发访问。
- 利于 SEO:搜索引擎更倾向于抓取和收录静态页面,有利于提升手机站的搜索排名。
- 用户体验好:页面打开迅速,用户等待时间短。
DedeCMS 实现手机站静态化的核心机制是 “伪静态” 和 “静态发布” 的结合,下面我们分步讲解实现方法。
第一步:确保手机站环境正确
在开始之前,请确保你已经完成了手机站的基本搭建,手机站会放在一个子目录下,/m/。
- 创建手机站模板目录:
在
/templets/目录下创建一个新目录,mobile/,用于存放手机站的所有模板文件。 - 创建手机站首页:
在
/templets/mobile/目录下创建index.htm文件,这是手机站的首页模板。 - 设置默认手机模板:
登录 DedeCMS 后台,进入 “系统” -> “系统基本参数” -> “核心设置”,找到 “手机版默认模板目录” 选项,将其值设置为
mobile。 - 设置手机首页:
在后台的 “频道模型” -> “主页管理” 中,找到 “手机主页” 选项,将其指向
/templets/mobile/index.htm。
第二步:开启并配置手机站伪静态
伪静态是静态化的前提,它通过服务器重写规则,将类似 index.php?m=list&id=1 这样的动态链接,转换成 list/1.html 这样的静态化链接形式,但服务器内部仍然会执行 PHP 脚本,这主要是为了美观和 SEO。
DedeCMS 后台设置

(图片来源网络,侵删)
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “是否使用伪静态” 选项,选择 “是”。
- 找到 “手机伪静态规则” 选项,DedeCMS 通常会提供默认的规则,
[m={cmspath}/m/list.php?tid={tid}] [m={cmspath}/m/list.php?tid={tid}&page={page}] [m={cmspath}/m/view.php?aid={aid}]- 这里的
{cmspath}是你的网站安装目录,{tid}是栏目 ID,{page}是页码,{aid}是文章 ID。 - 重要提示:这些规则是给 DedeCMS 后台生成链接时用的,不是直接给服务器用的,服务器需要的是
.htaccess或web.config规则。
- 这里的
服务器配置
你需要根据你的服务器类型,在手机站根目录(/m/ 目录)下创建对应的规则文件。
对于 Apache 服务器
在 /m/ 目录下创建一个名为 .htaccess 的文件,内容如下:
# 手机站伪静态规则
RewriteEngine On
# 列表页
RewriteCond %{QUERY_STRING} tid=(.*)$
RewriteRule ^list\.html$ /m/list.php?tid=%1 [L]
# 列表分页
RewriteCond %{QUERY_STRING} tid=(.*)(&page=(.*))$
RewriteRule ^list\.html$ /m/list.php?tid=%1&page=%3 [L]
# 文章页
RewriteCond %{QUERY_STRING} aid=(.*)$
RewriteRule ^view\.html$ /m/view.php?aid=%1 [L]
说明:
RewriteEngine On:开启重写引擎。RewriteCond:重写条件,匹配查询字符串。RewriteRule:重写规则,将list.html这样的请求,真实地指向list.php。
对于 Nginx 服务器
在 Nginx 的配置文件中(通常在 server 块里),添加如下规则:
# 手机站伪静态规则
location ~* ^/m/ {
# ... 其他配置 ...
# 列表页
location ~* ^/m/list\.html$ {
rewrite "^/m/list\.html\?tid=(\d+)$" /m/list.php?tid=$1 last;
}
# 列表分页
location ~* ^/m/list\.html$ {
rewrite "^/m/list\.html\?tid=(\d+)&page=(\d+)$" /m/list.php?tid=$1&page=$2 last;
}
# 文章页
location ~* ^/m/view\.html$ {
rewrite "^/m/view\.html\?aid=(\d+)$" /m/view.php?aid=$1 last;
}
}
修改完 Nginx 配置后,记得执行 nginx -s reload 命令重新加载配置。
第三步:一键生成手机站静态HTML文件(核心步骤)
这是实现真正静态化的关键,DedeCMS 提供了非常方便的工具来批量生成静态文件。
-
生成首页
- 登录 DedeCMS 后台。
- 进入 “生成” -> “HTML更新”。
- 在 “主页更新” 部分,你会看到一个 “选择主页模板” 的下拉菜单,确保它指向你的手机站首页模板
/templets/mobile/index.htm。 - 点击 “更新主页” 按钮,系统会生成一个静态的
index.html文件,并放置在你的手机站根目录/m/下。
-
生成栏目页
- 在 “生成” -> “HTML更新” 页面,切换到 “栏目页面” 选项卡。
- 更新选项:选择 “所有栏目” 或勾选你需要更新的特定栏目。
- 目录默认页名称:这里通常默认是
index.html,确保它和你的设置一致。 - 点击 “更新栏目”,系统会遍历所有栏目,为每个栏目生成一个静态的
index.html文件。
-
生成文章页(最耗时但最重要的一步)
- 在 “生成” -> “HTML更新” 页面,切换到 “文档页面” 选项卡。
- 选择要生成的栏目:你可以选择“所有栏目”,也可以只选择更新过的栏目,以节省时间。
- 开始:点击 “开始生成”。
- 系统会逐篇读取文章内容,调用
/templets/mobile/article_article.htm(或其他你设定的文章模板)生成静态的 HTML 文件,并按照栏目目录结构存放在/m/目录下。
生成完成后,你的 /m/ 目录结构会变成这样:
/m/
├── index.html (手机站首页)
├── css/
├── images/
├── a/ (文章存放目录)
│ └── 1.html (ID为1的文章)
├── b/ (栏目ID为2的目录)
│ └── index.html (栏目2的列表页)
└── c/ (栏目ID为3的目录)
└── index.html (栏目3的列表页)
第四步:设置网站根目录跳转和默认首页
为了让用户访问 你的域名.com 时能自动跳转到手机站,并且服务器优先返回 index.html 而不是 index.php,需要进行以下设置。
设置网站根目录默认首页
- 登录 DedeCMS 后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “网站首页默认文件” 选项。
- 将其修改为
index.html,index.php,。把index.html放在最前面,这样服务器会优先查找并返回index.html文件。
设置根目录跳转(可选,但推荐)
- 在你的网站根目录( 目录)下,创建一个
index.html文件。 - 这个文件的内容可以是一段简单的 JavaScript 代码,实现自动跳转到
/m/目录:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">正在跳转至手机站...</title>
<script>
window.location.href = "/m/";
</script>
</head>
<body>
<p>如果页面没有自动跳转,请点击<a href="/m/">这里</a>。</p>
</body>
</html>
这样,即使用户直接访问主域名,也会被迅速引导到静态化的手机站。
总结与注意事项
| 步骤 | 操作 | 目的 |
|---|---|---|
| 环境准备 | 创建 /templets/mobile/ 目录和模板文件,并设置后台默认参数。 |
搭建好手机站的基础框架。 |
| 伪静态配置 | 在后台开启伪静态,并在服务器上配置 .htaccess (Apache) 或 Nginx 规则。 |
让动态链接看起来像静态链接,方便 SEO 和用户。 |
| 生成静态文件 | 使用后台“生成”功能,依次生成首页、栏目页、文章页的 .html 文件。 |
核心步骤,将动态页面转换为真正的静态文件。 |
| 根目录设置 | 修改网站首页默认文件为 index.html,并可选地设置根目录跳转。 |
确保访问主域名时,用户看到的是静态化的手机站首页。 |
重要注意事项:
- 后需要重新生成:当你发布新文章、修改文章内容或更新栏目后,相关的静态页面不会自动更新,你需要再次进入“生成”页面,手动更新对应的内容,否则用户看到的就是旧页面。
- 服务器权限:确保 Web 服务器(如 Apache 的
www-data用户,Nginx 的nginx用户)对你的/m/目录有写入权限,否则无法生成文件。 - 模板标签:手机站模板中使用的 DedeCMS 标签(如
{dede:arclist})必须正确,否则生成静态页面时会出错或显示异常。 - 性能权衡:虽然静态化能极大提升访问速度,但每次更新内容都需要重新生成,对于内容更新极其频繁的网站,可能会增加管理员的操作负担,需要根据自身网站情况权衡利弊。
通过以上四个步骤,你就可以成功地为你的 DedeCMS 手机站实现静态化,从而获得更好的性能和 SEO 表现。
