织梦二级域名如何实现?

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

核心原理

二级域名的实现原理可以概括为以下几点:

织梦如何实现二级域名
(图片来源网络,侵删)
  1. DNS解析:将二级域名(如 m.yourdomain.com)指向你的服务器IP地址。
  2. 服务器配置:在Web服务器(如Apache或Nginx)上,让这个二级域名的请求能够被正确接收和处理,并指向到网站根目录下的某个特定文件夹
  3. 织梦配置:修改织梦的数据库和配置文件,让织梦知道这个二级域名对应着哪个栏目(通常是首页栏目),并正确地生成链接。

准备工作

在开始之前,请确保你拥有:

  • 一个已备案的顶级域名(如 yourdomain.com)。
  • 服务器的管理权限(或联系你的主机商)。
  • 一个已安装好的织梦CMS程序在顶级域名下(网站根目录是 /wwwroot/yourdomain.com/)。

第一步:DNS解析配置

登录你的域名提供商的管理后台(如阿里云、腾讯云、GoDaddy等),找到DNS解析管理。

  1. 添加一条A记录CNAME记录
    • 类型A(记录值填写服务器IP)或 CNAME(记录值指向你的顶级域名,如 yourdomain.com),推荐使用 A 记录,更直接。
    • 主机记录:这里填写你的二级域名前缀,要实现 m.yourdomain.com,就填写 m
    • 记录值:填写你服务器的公网IP地址。
    • TTL:使用默认值即可。

等待几分钟到几小时,DNS解析生效后,你就可以通过 ping m.yourdomain.com 看到它指向了你的服务器IP。


第二步:服务器端配置

这是最关键的一步,你需要根据你的服务器环境(Apache或Nginx)进行配置。

织梦如何实现二级域名
(图片来源网络,侵删)

使用 Nginx (推荐,性能更好)

假设你的网站根目录是 /wwwroot/yourdomain.com/,二级域名 m.yourdomain.com 想指向 /wwwroot/yourdomain.com/m/ 这个目录。

  1. 创建目录:确保 /wwwroot/yourdomain.com/m/ 目录存在,并且里面可以放一个简单的 index.html 用于测试。

  2. 修改Nginx配置文件: 找到你的网站配置文件,通常位于 /usr/local/nginx/conf/vhost/yourdomain.com.conf/etc/nginx/sites-available/yourdomain.com

    server 块的同级或外部,添加一个新的 server 块,专门处理二级域名请求。

    织梦如何实现二级域名
    (图片来源网络,侵删)
    # 这是处理顶级域名的 server 块,保持不变
    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        root /wwwroot/yourdomain.com;
        # ... 其他顶级域名配置 ...
    }
    # 这是新增的,处理二级域名的 server 块
    server {
        listen 80;
        # 这里填写你的二级域名
        server_name m.yourdomain.com;
        # 指向二级域名对应的网站目录
        root /wwwroot/yourdomain.com/m;
        # 其他配置可以和顶级域名保持一致,比如伪静态规则
        include /wwwroot/yourdomain.com/.htaccess; # 如果有伪静态规则,可以这样引用
        # 或者直接复制顶级域名的 location 配置
        location / {
            index index.php index.html index.htm;
            if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php?s=$1 last;
                break;
            }
        }
        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;
        }
    }
  3. 重启Nginx服务

    nginx -t # 检查配置文件语法
    systemctl restart nginx # 或 service nginx restart

使用 Apache

假设你的网站根目录是 /var/www/html/yourdomain.com/

  1. 创建目录:确保 /var/www/html/yourdomain.com/m/ 目录存在。

  2. 开启虚拟主机功能:确保Apache的 httpd.conf 中加载了 vhosts.confmod_rewrite.so 模块。

  3. 创建虚拟主机配置文件: 在 /etc/apache2/sites-available/ 目录下创建一个新文件,m.yourdomain.com.conf

    <VirtualHost *:80>
        ServerAdmin webmaster@yourdomain.com
        # 填写你的二级域名
        ServerName m.yourdomain.com
        # 可选:添加 www 二级域名
        ServerAlias www.m.yourdomain.com
        # 指向二级域名对应的网站目录
        DocumentRoot /var/www/html/yourdomain.com/m
        <Directory /var/www/html/yourdomain.com/m>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error_m.log
        CustomLog ${APACHE_LOG_DIR}/access_m.log combined
    </VirtualHost>
  4. 启用虚拟主机并重启Apache

    a2ensite m.yourdomain.com.conf # 启用站点
    a2dissite 000-default.conf # 如果需要,可以禁用默认站点
    systemctl restart apache2 # 或 service apache2 restart

第三步:织梦CMS端配置

服务器配置完成后,现在要让织梦系统“认识”这个新域名。

在后台添加新站点

登录织梦后台,进入【系统】-> 【SQL命令行工具】

执行以下SQL语句,将你的二级域名添加到 dedi_homepageset 表中,这步的目的是告诉织梦,这个二级域名也是一个有效的“首页”。

INSERT INTO `dede_homepageset` (`aid`, `typeid`, `templet`, `position`, `userip`) VALUES (NULL, '0', 'default', '', '');

执行后,记录下新插入的这条数据的 aid 值(假设是 5)。

修改核心配置文件 dede/config.php

打开织梦根目录下的 /dede/config.php 文件。

在文件中找到 $cfg_multi_site 这个变量,并将其设置为 Y

// 原来
// $cfg_multi_site = 'N';
// 修改后
$cfg_multi_site = 'Y';

修改数据库 dede_arctype

这是最核心的一步,要将二级域名与一个栏目关联起来。

  • 确定目标栏目ID:假设你想让二级域名 m.yourdomain.com 直接指向首页,那么首页通常对应的是 “栏目ID为 1 的栏目”(除非你修改过默认设置),你可以通过【栏目管理】->【增加顶级栏目】来创建一个专门用于二级域名的栏目,或者直接使用ID为1的栏目。

  • 执行SQL更新:再次使用【SQL命令行工具】,执行以下SQL语句,将你之前记录的 aid 值和栏目ID关联起来。

    UPDATE `dede_arctype` SET `isdefault` = 'Y', `typedir` = '{cmspath}/m' WHERE `id` = '1';
    • isdefault = 'Y':表示这个栏目是默认首页。
    • typedir = '{cmspath}/m':这是非常关键的一步。{cmspath} 是织梦的一个系统变量,会自动替换成你的网站根目录(即顶级域名对应的目录)。/m 表示内容存放在 /m/ 目录下,这确保了通过二级域名访问时,生成的文章链接是 m.yourdomain.com/m/... 的形式,与服务器配置的 root 路径 /wwwroot/yourdomain.com/m/ 对应。
    • WHERE id = '1':将ID为1的栏目设置为默认首页,如果你创建了新栏目,请将 1 改为你的新栏目ID。

更新首页并生成栏目

  1. 进入【生成】-> 【更新主页HTML】,点击“更新主页”。
  2. 进入【核心】-> 【栏目管理】,点击“一键更新所有栏目”。

第四步:测试与验证

  1. 访问测试:在浏览器中输入 m.yourdomain.com,你应该能看到你的网站首页了。
  2. 链接测试:点击首页上的任意文章链接,检查URL是否正确地以 m.yourdomain.com/m/... 的形式出现。
  3. 图片/资源测试:确保页面上的图片、CSS、JS等资源文件能正常加载,如果路径错误,可能需要检查 {cmspath} 的使用是否正确。

常见问题与注意事项

  • 登录后台:访问二级域名时,后台地址仍然是 m.yourdomain.com/dede/
  • 数据同步:顶级域名和二级域名后台的数据是完全同步的,因为它们使用的是同一个数据库,这既是优点也是缺点,优点是管理方便,缺点是无法独立管理内容。
  • 图片路径问题:如果图片无法显示,通常是 {cmspath} 变量在图片地址中解析不正确,可以在后台【系统】-> 【系统基本参数】 -> 【核心设置】 中,检查“附件目录”、“附件目录命名规则”等选项,确保它们使用了相对路径,并且与你的二级域名目录结构匹配。
  • 伪静态规则:确保二级域名的服务器配置中包含了与顶级域名相同的伪静态规则,否则文章页等动态页面可能会出现404错误。
  • SSL证书(HTTPS):如果你的主站启用了HTTPS,也需要为二级域名单独申请一个通配符证书或单域名证书,并在服务器配置中配置 443 端口的 server 块。
  • 移动端适配m 域名用于移动站,强烈建议使用织梦的 “手机模板” 功能,而不是完全复制一份站点,这样内容只需维护一次,通过模板判断设备类型来展示不同样式,更加高效和易于管理。

按照以上步骤,你应该就能成功地在织梦CMS中实现二级域名的配置了,如果在某个步骤遇到问题,请仔细检查每一步的配置,尤其是服务器配置文件和SQL语句的正确性。

-- 展开阅读全文 --
头像
dede与dz会员同步登录如何实现?
« 上一篇 昨天
dede跳转为何不直接跳转?
下一篇 » 昨天

相关文章

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

目录[+]