核心思路
- 创建移动站模板:在PC站的基础上,复制一套模板文件,专门用于手机端显示。
- 创建移动站栏目和内容:将PC站的内容同步到移动站,或者让移动站和PC站共享内容数据库。
- 设置模板调用:通过织梦的全局变量或自定义函数,让模板根据访问的域名(PC域名还是移动二级域名)自动选择调用PC模板还是移动模板。
- 配置服务器:在服务器上设置二级域名,并将其指向与PC站相同的网站根目录。
- 设置跳转:实现PC用户访问移动域名时自动跳转到PC站,移动用户访问PC域名时自动跳转到移动站。
第一步:准备工作
- 一个已经正常运行的织梦PC站:确保你的网站可以正常访问,并且有完整的栏目和内容。
- 一个已备案的顶级域名:
yourdomain.com。 - 支持二级域名的虚拟主机或服务器:确保你的主机商允许你创建二级域名。
- 一个用于移动站的二级域名:
m.yourdomain.com,你需要在你的域名解析服务商(如阿里云、腾讯云等)那里,为m创建一个A记录,指向你服务器的IP地址。
第二步:创建移动站模板
这是最核心的一步,我们采用“一套内容,两套模板”的方案,这样内容管理最方便。

-
复制PC模板文件夹: 在织梦的
/templets/目录下,复制你的PC站模板文件夹(default),并重命名,mobile。 -
修改移动模板:
- 文件路径:打开
/templets/mobile/文件夹。 - 修改首页:打开
index.htm文件。- 将
<head>标签中的视口viewport设置加上:<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> - 引入移动端专用的CSS和JS文件(
style-mobile.css,jquery-mobile.js)。 - 修改HTML结构,使其更适应移动端(例如使用更简洁的布局、更大的字体和按钮)。
- 将
- 修改列表页:打开
list_*.htm文件,同样进行上述移动端的适配修改。 - 页:打开
article_*.htm文件,进行移动端适配,内容页是重点,要确保图片宽度自适应,避免横向滚动。
- 文件路径:打开
推荐做法:如果你的移动站和PC站布局差异不大,可以直接修改PC模板的CSS,通过媒体查询 @media 来为不同屏幕尺寸提供样式,但如果布局差异大,强烈建议独立维护一套移动模板。
第三步:配置织梦实现模板自动切换
这是实现“一个后台,两套前端”的关键,我们将通过修改织梦的核心文件来实现。

重要提示:修改核心文件前,请务必备份!以便出错时可以恢复。
-
找到并打开
include/extend.func.php文件: 如果这个文件不存在,请在include目录下手动创建一个。 -
在
extend.func.php文件中添加以下函数:/** * 根据域名自动选择模板 * @param string $path 模板路径 * @return string 最终模板路径 */ function getMobileTemplate($path) { // 获取当前访问的域名 $host = strtolower($_SERVER['HTTP_HOST']); // 定义移动端域名 $mobile_domain = 'm.yourdomain.com'; // !!! 请务必替换成你自己的移动端域名 !!! // 如果当前域名是移动端域名,则使用移动模板 if ($host == $mobile_domain) { // 替换模板路径中的 'default' 为 'mobile' // 假设你的PC模板都在 /templets/default/ 目录下 $path = str_replace('/templets/default/', '/templets/mobile/', $path); } return $path; } -
修改织梦模板调用的核心函数: 织梦在加载模板时,会使用
include/dedetemplate.class.php文件,我们需要修改这个文件中的LoadTemplate()函数。
(图片来源网络,侵删)- 打开
/include/dedetemplate.class.php文件。 - 找到
LoadTemplate()函数(大约在第200行左右)。 - 在函数内部,找到
$this->template被赋值的地方,通常是在一个if条件语句中。 - 在
$this->template = $templatefile;这行代码之前,插入我们刚刚创建的函数调用。
修改后的代码片段可能如下:
// ... 原有代码 ... if (!file_exists($templatefile)) { // ... 错误处理代码 ... } else { // 在这里插入我们的函数调用 if (function_exists('getMobileTemplate')) { $templatefile = getMobileTemplate($templatefile); } $this->template = $templatefile; } // ... 后续代码 ... - 打开
工作原理:
当有用户访问你的网站时,织梦会先检查当前访问的域名,如果是 m.yourdomain.com,getMobileTemplate 函数就会将模板路径从 /templets/default/ 切换到 /templets/mobile/,从而调用移动端的模板,如果是PC域名,则保持原样,调用PC模板。
第四步:配置服务器
- 登录你的主机控制面板(如 cPanel、宝塔面板等)。
- 找到“域名管理”或“子域名”功能。
- 添加子域名:
- 域名:
m - 根目录:这一步至关重要! 将
m.yourdomain.com的根目录指向你PC站网站根目录的绝对路径,如果你的PC站根目录是/home/wwwroot/yourdomain.com,那么这里就填写这个路径。 - 目的:让移动站和PC站使用同一套文件和数据库,只是通过不同的模板来展示。
- 域名:
第五步:设置自动跳转(可选但推荐)
为了让用户体验更好,我们需要实现:
- PC用户访问
m.yourdomain.com-> 跳转到www.yourdomain.com(或yourdomain.com)。 - 移动用户访问
www.yourdomain.com-> 跳转到m.yourdomain.com。
使用JS脚本(推荐,简单)
在你的PC站模板的 head 标签内(head.htm 公共模板文件)加入以下JS代码:
<script>
(function(){
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.host.indexOf('m.yourdomain.com') === -1) {
window.location.href = 'http://m.yourdomain.com' + window.location.pathname + window.location.search;
}
}
browserRedirect();
})();
</script>
使用PHP脚本(在模板文件中)
在你的PC站首页模板 index.htm 的最顶部,<head> 标签之前加入以下PHP代码:
<?php
if (strpos($_SERVER['HTTP_HOST'], 'm.yourdomain.com') !== false && strpos($_SERVER['HTTP_HOST'], 'www.yourdomain.com') === false) {
// 如果是移动域名,且不是www域名,则跳转到PC主域名
header("Location: http://www.yourdomain.com");
exit();
}
?>
对于移动用户访问PC站跳转的逻辑,可以在移动站模板的 head 标签内加入类似的JS,判断如果不是移动域名,就跳转到移动域名。
第六步:设置移动站专属的“站点设置”
为了在后台能正确识别和管理移动站,建议你:
- 登录织梦后台。
- 进入【系统】->【系统基本参数】->【核心设置】。
- 找到“站点路径”和“站点名称”,你可以将移动站的相关信息也记录下来,方便管理。
- (可选)在【系统】->【SQL命令行工具】中,执行以下SQL,为移动站创建一个独立的“站点”,方便在内容模型等地方区分:
INSERT INTO `dede_sys_config` (`varname`, `info`, `type`, `value`, `groupid`) VALUES ('mobile_site_name', '移动站名称', 'text', '我的移动站', 0);(此步非必须,但有助于更精细化管理)
总结与检查
完成以上所有步骤后,请进行以下检查:
- 访问PC域名(如
www.yourdomain.com):应显示PC版页面,且JS应检测到你是否在移动设备上,如果是,应自动跳转到m.yourdomain.com。 - 访问移动域名(如
m.yourdomain.com):应显示移动版页面。 - 检查栏目和内容:确保在移动域名下,栏目列表和文章内容都能正常显示,并且样式是移动端适配后的样式。
- 检查图片:确保文章中的图片在移动端不会撑破页面。
至此,你已经成功地为你的织梦网站配置了二级域名移动站,整个过程虽然涉及多个步骤,但逻辑清晰,一旦配置完成,后续的维护和管理将会非常方便。
