核心概念:DedeCMS 手机站的工作原理
在开始之前,你必须先理解 DedeCMS 手机站是如何工作的,这能让你在遇到问题时能快速定位。

(图片来源网络,侵删)
DedeCMS 手机站的核心是 “模板判断 + 内容同步” 的模式。
-
域名和目录:
- 主站:使用你主域名,
www.yourdomain.com。 - 手机站:通常放在一个子目录下,
m.yourdomain.com或者www.yourdomain.com/m/,现在更推荐使用 独立二级域名m.yourdomain.com,这有利于移动端 SEO。
- 主站:使用你主域名,
-
核心文件:
/m/目录:这是手机站的根目录,里面包含了手机站运行所需的所有文件,主要是手机版的模板文件。/include/目录下的文件:这是手机站运行的“大脑”。dede_mobile.php:手机站的入口文件,当用户访问手机站时,会先加载这个文件。detect_device.php:设备检测的核心脚本,用来判断用户是用手机还是电脑访问。
-
工作流程:
(图片来源网络,侵删)- 当一个用户访问你的网站时,
index.php首先会加载/include/dede_mobile.php。 dede_mobile.php会调用detect_device.php来检测用户的 User-Agent。- 如果是手机访问:
- 系统会自动将网站根目录指向
/m/。 - 加载
/m/目录下的模板文件来展示页面。 - URL 地址会自动加上
/m/前缀(www.yourdomain.com/m/a/123.html)。
- 系统会自动将网站根目录指向
- 如果是电脑访问:
系统正常加载主站的模板文件,和以前一样。
- 当一个用户访问你的网站时,
手机站不是独立的网站,而是共享主站数据库的一套“移动模板皮肤”。
手机站配置与启用(以 DedeCMS 5.7 为例)
假设你已经安装好了 DedeCMS 主站。
步骤 1:上传手机站文件
- 从 DedeCMS 官方下载最新完整版(V5.7 SP2)。
- 解压下载的压缩包,你会看到一个名为
dedecms的文件夹。 - 进入
dedecms文件夹,找到m文件夹。 - 将这个
m文件夹里的所有内容,通过 FTP 或服务器管理工具,上传到你网站根目录下的/m/文件夹中。- 如果你的网站根目录是
/wwwroot/,那么就把m文件夹里的东西上传到/wwwroot/m/。 - 注意:是上传
m文件夹内部的文件,而不是把m文件夹本身上传。
- 如果你的网站根目录是
步骤 2:修改主站入口文件
-
用 FTP 或服务器文件管理器,打开你网站根目录下的
index.php文件。
(图片来源网络,侵删) -
找到文件最底部的 之前,添加以下代码:
//手机版自动转跳 if (isset($_GET['mobile'])) { $mobile = $_GET['mobile']; } else { require_once (dirname(__FILE__) . "/include/dede_mobile.php"); } -
保存并上传
index.php文件,这一步的目的是让手机站检测逻辑在首页生效。
步骤 3:配置后台参数
- 登录你的 DedeCMS 后台(
/dede/目录)。 - 进入 【系统】-> 【系统基本参数】-> 【核心设置】**。
- 找到 “手机版开关” 选项,将其设置为 “是”。
- 强烈建议:找到 “手机版访问地址” 选项,将其设置为你的手机站域名,
http://m.yourdomain.com/,这有助于 SEO 和用户体验。 - 点击“保存”按钮。
步骤 4:设置网站栏目
这是最关键的一步,决定了手机站显示哪些内容。
- 在后台进入 【栏目】-> 【栏目管理】**。
- 找到你想要在手机站显示的栏目,点击 “修改”。
- 在栏目修改页面,找到 “栏目属性” 部分。
- 勾选 “手机栏目” 选项。
- 重要:在 “手机栏目模板” 中,选择你为这个栏目准备的手机版模板文件(
list_m.htm)。 - 点击“保存”。
- 重复此操作,为你希望在手机站展示的所有栏目都勾选“手机栏目”。
步骤 5:准备手机站模板
手机站默认模板很简单,通常需要你自己修改或制作。
- 模板位置:手机站模板文件存放在
/m/templets/目录下。 - 常用模板文件:
index_m.htm:手机首页模板。list_m.htm:手机列表页模板。article_m.htm:手机文章页模板。
- 如何制作模板:
- 最简单的方法:复制你主站的模板文件(如
index.htm),然后对它进行精简,移除不必要的 JS、CSS,使用更简洁的布局,字体和按钮尺寸要适合手机触摸。 - 标签基本通用:DedeCMS 的模板标签(如
{dede:arclist},{dede:field})在手机站模板中大部分是通用的,但要注意调用方式和参数可能需要微调。 - 参考默认模板:先打开
/m/下的默认页面,看看它们是如何调用标签和布局的,作为学习参考。
- 最简单的方法:复制你主站的模板文件(如
内容同步与发布
DedeCMS 手机站的内容是 自动同步 的。
- 当你在主站后台发布一篇文章时,只要这篇文章所属的栏目在“栏目管理”中被勾选了“手机栏目”,这篇文章就会自动出现在手机站对应的栏目列表中。
- 你不需要为手机站单独发布一遍内容。
高级技巧:内容摘要 手机站的文章页通常只显示摘要,你可以在发布文章时,在 “ 栏填写一段简短的文字,这段文字就会在手机列表页和文章页的摘要部分显示,如果不填写,系统可能会自动截取文章开头部分。
常见问题与解决方案
问题1:手机站访问不了,或者样式错乱。
- 检查:
/m/目录下的文件是否都已上传完整?index.php是否已修改?- 后台【系统基本参数】中的“手机版开关”是否为“是”?
- 检查
/m/目录下的模板文件是否存在,或者路径是否正确。 - 清空浏览器缓存,或者用手机浏览器打开一个隐私/无痕窗口访问。
问题2:手机站调用的内容和主站不一样。
- 原因:因为你没有在【栏目管理】中勾选“手机栏目”。
- 解决:去后台栏目管理,找到相关栏目,修改并勾选“手机栏目”,并指定手机模板。
问题3:如何实现电脑和手机站自动跳转?
- DedeCMS 默认已经实现了这个功能,它通过
include/dede_mobile.php自动判断设备并重定向。 - 如果你想强制跳转到
m.yourdomain.com,可以在主站模板的<head>部分加入以下JS代码(不推荐,可能影响SEO):<script type="text/javascript"> function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; var bIsMidp = sUserAgent.match(/midp/i) == "midp"; var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb"; var bIsAndroid = sUserAgent.match(/android/i) == "android"; var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce"; var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile"; if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) { window.location.href = "http://m.yourdomain.com"; } } browserRedirect(); </script>但通常情况下,DedeCMS 自带的机制就足够了,不建议额外添加。
问题4:现在都用响应式网站了,DedeCMS 手机站还值得用吗?
- 优点:
- 对于老网站来说,成本低,改动小,能快速拥有一个移动端。
- 实现简单,有现成的框架。
- 缺点:
- 维护两套模板:PC端一套,移动端一套,增加了维护成本。
- 代码冗余:移动端可能包含大量不必要的PC端代码,影响加载速度。
- SEO 不如响应式:搜索引擎需要抓取和索引两套内容,不如一套响应式网站清晰。
- 体验可能不一致:两套模板风格不同,可能导致品牌体验割裂。
- 对于新站:强烈建议直接使用 响应式模板,现在有很多基于 Bootstrap、Vant UI 等框架的 DedeCMS 响应式模板,可以实现一套代码适配所有设备。
- 对于老站:如果预算有限,不想大改,DedeCMS 手机站是一个可行的过渡方案,但长远来看,向响应式网站迁移是更好的选择。
