手机端域名如何绑定到m文件夹?

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

核心原理

这个操作主要分为两部分:

织梦手机端域名绑定到m文件夹
(图片来源网络,侵删)
  1. 服务器端配置:告诉服务器,当用户访问 m.yourdomain.com 时,将请求指向网站根目录下的 m/ 文件夹,这通常通过 虚拟主机Nginx/Apache 配置 来实现。
  2. 织梦CMS配置:告诉织梦程序,m 文件夹是它的“家”,并启用移动端模板。

第一步:服务器端配置(将域名指向 m 文件夹)

这是最关键的一步,您的操作取决于您的服务器环境:虚拟主机控制面板VPS/独立服务器

使用虚拟主机(最常见)

大多数虚拟主机服务商(如阿里云、腾讯云、西部数码等)都提供了一个控制面板来管理域名。

  1. 登录您的虚拟主机控制面板

  2. 找到 “域名绑定”“域名管理” 或类似的入口。

    织梦手机端域名绑定到m文件夹
    (图片来源网络,侵删)
  3. 在绑定列表中,找到您准备用来做手机端的域名(m.yourdomain.com)。

  4. 修改其“网站目录”或“访问路径”

    • 默认值: (表示指向网站根目录)
    • 您需要修改为/m (表示指向网站根目录下的 m 文件夹)
  5. 保存设置,服务器通常需要几分钟到几小时来生效,大部分是实时生效的。

注意:请确保您的虚拟主机套餐支持绑定子域名,几乎所有套餐都支持。

织梦手机端域名绑定到m文件夹
(图片来源网络,侵删)

使用 VPS/独立服务器(自己管理 Nginx 或 Apache)

如果您是自己管理服务器,需要手动修改配置文件。

对于 Nginx

  1. 编辑您的 Nginx 配置文件,通常在 /etc/nginx/sites-available/ 目录下。
  2. 找到或创建 m.yourdomain.comserver 块。
  3. 修改 root 指令,将其指向 /path/to/your/website/m

配置示例:

# PC端域名配置 (www.yourdomain.com)
server {
    listen 80;
    server_name www.yourdomain.com yourdomain.com;
    root /path/to/your/website;  # 指向网站根目录
    index index.php index.html;
    # ... 其他PC端配置 ...
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
# 手机端域名配置 (m.yourdomain.com)
server {
    listen 80;
    server_name m.yourdomain.com;
    root /path/to/your/website/m;  # 【关键】指向 m 文件夹
    index index.php index.html;
    # ... 其他手机端配置 ...
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
  1. 保存文件后,检查 Nginx 配置语法并重启服务:
    sudo nginx -t
    sudo systemctl restart nginx

对于 Apache

  1. 编辑您的 Apache 虚拟主机配置文件,通常在 /etc/apache2/sites-available/ 目录下。
  2. 找到或创建 m.yourdomain.com<VirtualHost> 块。
  3. 修改 DocumentRoot 指令,将其指向 /path/to/your/website/m

配置示例:

# PC端域名配置 (www.yourdomain.com)
<VirtualHost *:80>
    ServerName www.yourdomain.com
    ServerAlias yourdomain.com
    DocumentRoot /path/to/your/website  # 指向网站根目录
    # ... 其他PC端配置 ...
</VirtualHost>
# 手机端域名配置 (m.yourdomain.com)
<VirtualHost *:80>
    ServerName m.yourdomain.com
    DocumentRoot /path/to/your/website/m  # 【关键】指向 m 文件夹
    # ... 其他手机端配置 ...
</VirtualHost>
  1. 保存文件后,启用站点并重启 Apache 服务:
    sudo a2ensite your-config-file.conf
    sudo systemctl restart apache2

第二步:织梦CMS后台配置

当服务器配置完成后,访问 m.yourdomain.com 应该能看到网站了,但此时它可能还是PC端的模板,我们需要在织梦后台进行设置。

  1. 登录织梦DedeCMS后台 (/dede/)。

  2. 开启并设置移动端

    • 在左侧菜单中找到 “系统” -> “系统基本参数”
    • 在弹出的页面中,切换到 “核心设置” 选项卡。
    • 找到 “是否开启手机站” 选项,将其修改为 “是”
    • “手机网站根目录” 选项中,确保路径是 /m/,织梦在开启手机站时会自动创建这个文件夹,但确认一下总没错。
    • “手机网站默认模板目录” 选项中,填写您的移动端模板目录,defaultmobile,这取决于您存放移动端模板的文件夹名。
  3. 设置移动端模板

    • 在左侧菜单中找到 “模板” -> “手机模板设置”
    • 您可以为首页、列表页、文章页等分别选择对应的移动端模板文件(.htm 文件)。
    • 确保您选择的模板文件位于您上一步设置的“手机网站默认模板目录”中。
  4. 生成移动端页面

    • 完成模板选择后,点击页面底部的 “更新”“生成” 按钮。
    • 建议选择 “首页”“栏目”“文档” 全部生成一遍,以确保所有移动端页面都正确生成了。

第三步:移动端跳转设置(可选但推荐)

为了更好的用户体验和SEO,通常希望用户在PC上访问时,能自动跳转到移动端页面(反之亦然),这需要修改网站根目录下的 index.php 文件。

  1. 备份 index.php:在进行任何修改前,请务必备份网站根目录下的 index.php

  2. 修改 index.php:在文件的最顶部(<?php 之后),添加以下PHP跳转代码:

    <?php
    // 跳转代码开始
    if (isset($_SERVER['HTTP_HOST']) && isset($_SERVER['REQUEST_URI'])) {
        $http_host = $_SERVER['HTTP_HOST'];
        $request_uri = $_SERVER['REQUEST_URI'];
        // 如果当前是PC端域名访问
        if ($http_host == 'www.yourdomain.com' || $http_host == 'yourdomain.com') {
            // 检测是否为移动设备
            if (isMobile()) {
                // 跳转到移动端域名,并带上当前路径
                header('Location: http://m.yourdomain.com' . $request_uri);
                exit;
            }
        }
    }
    // 判断是否为移动设备的函数
    function isMobile() {
        // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
            return true;
        }
        // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
        if (isset ($_SERVER['HTTP_VIA'])) {
            // 找不到为flase,否则为true
            return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
        }
        // 脑残法,判断手机发送的客户端标志
        if (isset ($_SERVER['HTTP_USER_AGENT'])) {
            $clientkeywords = array('nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile');
            // 从HTTP_USER_AGENT中查找手机浏览器的关键字
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
                return true;
            }
        }
        // 协议法,因为有可能不准确,放到最后判断
        if (isset ($_SERVER['HTTP_ACCEPT'])) {
            // 如果只支持wml并且不支持html那一定是移动设备
            // 如果支持wml和html但是wml在html之前则是移动设备
            if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
                return true;
            }
        }
        return false;
    }
    // 跳转代码结束
    // ... 下面是织梦 index.php 原来的代码 ...
    require_once (dirname(__FILE__) . "/include/common.inc.php");
    require_once DEDEINC."/arc.partview.class.php";
    $GLOBALS['_arEnv']['is_mobile'] = isMobile();
    $pv = new PartView();
    $pv->SetTemplet($cfg_basedir . $cfg_templeturl . '/index.htm');
    $pv->Display();
    ?>

    注意:请将代码中的 www.yourdomain.comm.yourdomain.com 替换成您自己的域名。


总结与检查清单

完成以上步骤后,您的手机站就配置好了,请按以下清单检查:

  1. [ ] 服务器配置m.yourdomain.com 的网站目录已正确指向 /m
  2. [ ] 织梦后台:已开启手机站,并设置了正确的根目录和模板目录。
  3. [ ] 织梦模板:已为移动端设置了对应的 .htm 模板文件。
  4. [ ] 页面生成:已在后台生成了所有移动端页面。
  5. [ ] 跳转功能:(可选)已添加PC/移动端自动跳转代码。
  6. [ ] 最终测试
    • 用手机访问 m.yourdomain.com,查看是否为移动端样式。
    • 用电脑浏览器访问 m.yourdomain.com,查看是否为移动端样式。
    • 用手机访问 www.yourdomain.com,检查是否自动跳转到 m.yourdomain.com
    • 用电脑访问 www.yourdomain.com,检查是否保持在PC端页面。

祝您配置顺利!

-- 展开阅读全文 --
头像
C语言如何用lua_pushtable压入表?
« 上一篇 昨天
close与fclose有何区别?
下一篇 » 昨天

相关文章

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

目录[+]