织梦手机端二级域名如何配置?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 织梦建站 正文

核心思路

  1. 创建移动站模板:在PC站的基础上,复制一套模板文件,专门用于手机端显示。
  2. 创建移动站栏目和内容:将PC站的内容同步到移动站,或者让移动站和PC站共享内容数据库。
  3. 设置模板调用:通过织梦的全局变量或自定义函数,让模板根据访问的域名(PC域名还是移动二级域名)自动选择调用PC模板还是移动模板。
  4. 配置服务器:在服务器上设置二级域名,并将其指向与PC站相同的网站根目录。
  5. 设置跳转:实现PC用户访问移动域名时自动跳转到PC站,移动用户访问PC域名时自动跳转到移动站。

第一步:准备工作

  1. 一个已经正常运行的织梦PC站:确保你的网站可以正常访问,并且有完整的栏目和内容。
  2. 一个已备案的顶级域名yourdomain.com
  3. 支持二级域名的虚拟主机或服务器:确保你的主机商允许你创建二级域名。
  4. 一个用于移动站的二级域名m.yourdomain.com,你需要在你的域名解析服务商(如阿里云、腾讯云等)那里,为 m 创建一个 A 记录,指向你服务器的IP地址。

第二步:创建移动站模板

这是最核心的一步,我们采用“一套内容,两套模板”的方案,这样内容管理最方便。

织梦手机端用二级域名
(图片来源网络,侵删)
  1. 复制PC模板文件夹: 在织梦的 /templets/ 目录下,复制你的PC站模板文件夹(default),并重命名,mobile

  2. 修改移动模板

    • 文件路径:打开 /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 来为不同屏幕尺寸提供样式,但如果布局差异大,强烈建议独立维护一套移动模板。


第三步:配置织梦实现模板自动切换

这是实现“一个后台,两套前端”的关键,我们将通过修改织梦的核心文件来实现。

织梦手机端用二级域名
(图片来源网络,侵删)

重要提示:修改核心文件前,请务必备份!以便出错时可以恢复。

  1. 找到并打开 include/extend.func.php 文件: 如果这个文件不存在,请在 include 目录下手动创建一个。

  2. 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;
    }
  3. 修改织梦模板调用的核心函数: 织梦在加载模板时,会使用 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.comgetMobileTemplate 函数就会将模板路径从 /templets/default/ 切换到 /templets/mobile/,从而调用移动端的模板,如果是PC域名,则保持原样,调用PC模板。


第四步:配置服务器

  1. 登录你的主机控制面板(如 cPanel、宝塔面板等)。
  2. 找到“域名管理”或“子域名”功能。
  3. 添加子域名
    • 域名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,判断如果不是移动域名,就跳转到移动域名。


第六步:设置移动站专属的“站点设置”

为了在后台能正确识别和管理移动站,建议你:

  1. 登录织梦后台。
  2. 进入【系统】->【系统基本参数】->【核心设置】。
  3. 找到“站点路径”和“站点名称”,你可以将移动站的相关信息也记录下来,方便管理。
  4. (可选)在【系统】->【SQL命令行工具】中,执行以下SQL,为移动站创建一个独立的“站点”,方便在内容模型等地方区分:
    INSERT INTO `dede_sys_config` (`varname`, `info`, `type`, `value`, `groupid`) VALUES ('mobile_site_name', '移动站名称', 'text', '我的移动站', 0);

    (此步非必须,但有助于更精细化管理)


总结与检查

完成以上所有步骤后,请进行以下检查:

  1. 访问PC域名(如 www.yourdomain.com):应显示PC版页面,且JS应检测到你是否在移动设备上,如果是,应自动跳转到 m.yourdomain.com
  2. 访问移动域名(如 m.yourdomain.com):应显示移动版页面。
  3. 检查栏目和内容:确保在移动域名下,栏目列表和文章内容都能正常显示,并且样式是移动端适配后的样式。
  4. 检查图片:确保文章中的图片在移动端不会撑破页面。

至此,你已经成功地为你的织梦网站配置了二级域名移动站,整个过程虽然涉及多个步骤,但逻辑清晰,一旦配置完成,后续的维护和管理将会非常方便。

-- 展开阅读全文 --
头像
double int在C语言中如何正确使用?
« 上一篇 02-17
C语言中int与string如何转换?
下一篇 » 02-17

相关文章

取消
微信二维码
支付宝二维码

目录[+]