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

- DNS解析:将二级域名(如
m.yourdomain.com)指向你的服务器IP地址。 - 服务器配置:在Web服务器(如Apache或Nginx)上,让这个二级域名的请求能够被正确接收和处理,并指向到网站根目录下的某个特定文件夹。
- 织梦配置:修改织梦的数据库和配置文件,让织梦知道这个二级域名对应着哪个栏目(通常是首页栏目),并正确地生成链接。
准备工作
在开始之前,请确保你拥有:
- 一个已备案的顶级域名(如
yourdomain.com)。 - 服务器的管理权限(或联系你的主机商)。
- 一个已安装好的织梦CMS程序在顶级域名下(网站根目录是
/wwwroot/yourdomain.com/)。
第一步:DNS解析配置
登录你的域名提供商的管理后台(如阿里云、腾讯云、GoDaddy等),找到DNS解析管理。
- 添加一条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/ 这个目录。
-
创建目录:确保
/wwwroot/yourdomain.com/m/目录存在,并且里面可以放一个简单的index.html用于测试。 -
修改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; } } -
重启Nginx服务:
nginx -t # 检查配置文件语法 systemctl restart nginx # 或 service nginx restart
使用 Apache
假设你的网站根目录是 /var/www/html/yourdomain.com/。
-
创建目录:确保
/var/www/html/yourdomain.com/m/目录存在。 -
开启虚拟主机功能:确保Apache的
httpd.conf中加载了vhosts.conf和mod_rewrite.so模块。 -
创建虚拟主机配置文件: 在
/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> -
启用虚拟主机并重启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。
更新首页并生成栏目
- 进入【生成】-> 【更新主页HTML】,点击“更新主页”。
- 进入【核心】-> 【栏目管理】,点击“一键更新所有栏目”。
第四步:测试与验证
- 访问测试:在浏览器中输入
m.yourdomain.com,你应该能看到你的网站首页了。 - 链接测试:点击首页上的任意文章链接,检查URL是否正确地以
m.yourdomain.com/m/...的形式出现。 - 图片/资源测试:确保页面上的图片、CSS、JS等资源文件能正常加载,如果路径错误,可能需要检查
{cmspath}的使用是否正确。
常见问题与注意事项
- 登录后台:访问二级域名时,后台地址仍然是
m.yourdomain.com/dede/。 - 数据同步:顶级域名和二级域名后台的数据是完全同步的,因为它们使用的是同一个数据库,这既是优点也是缺点,优点是管理方便,缺点是无法独立管理内容。
- 图片路径问题:如果图片无法显示,通常是
{cmspath}变量在图片地址中解析不正确,可以在后台【系统】-> 【系统基本参数】 -> 【核心设置】 中,检查“附件目录”、“附件目录命名规则”等选项,确保它们使用了相对路径,并且与你的二级域名目录结构匹配。 - 伪静态规则:确保二级域名的服务器配置中包含了与顶级域名相同的伪静态规则,否则文章页等动态页面可能会出现404错误。
- SSL证书(HTTPS):如果你的主站启用了HTTPS,也需要为二级域名单独申请一个通配符证书或单域名证书,并在服务器配置中配置
443端口的server块。 - 移动端适配:
m域名用于移动站,强烈建议使用织梦的 “手机模板” 功能,而不是完全复制一份站点,这样内容只需维护一次,通过模板判断设备类型来展示不同样式,更加高效和易于管理。
按照以上步骤,你应该就能成功地在织梦CMS中实现二级域名的配置了,如果在某个步骤遇到问题,请仔细检查每一步的配置,尤其是服务器配置文件和SQL语句的正确性。
