栏目绑定二级域名的意义
为织梦CMS的栏目绑定独立二级域名可以将不同栏目作为独立站点运营,有利于多品牌管理和SEO优化。例如,news.yourdomain.com 指向新闻栏目,shop.yourdomain.com 指向商城栏目。
一、前期准备
- 拥有对域名的DNS管理权限
- 服务器支持绑定多个域名(Apache/Nginx虚拟主机配置)
- 确保站点根目录对所有绑定的域名可访问
- 织梦CMS版本建议使用V5.7及以上
二、DNS域名解析设置
在域名管理后台(如阿里云、腾讯云DNS)添加记录:
记录类型: A记录 主机记录: news 记录值: 你的服务器IP地址 TTL: 600 记录类型: A记录 主机记录: shop 记录值: 你的服务器IP地址
三、服务器端的域名绑定
Apache配置示例
<VirtualHost *:80>
ServerName www.yourdomain.com
ServerAlias yourdomain.com
DocumentRoot "/www/web/yourdomain"
</VirtualHost>
<VirtualHost *:80>
ServerName news.yourdomain.com
DocumentRoot "/www/web/yourdomain"
</VirtualHost>
<VirtualHost *:80>
ServerName shop.yourdomain.com
DocumentRoot "/www/web/yourdomain"
</VirtualHost>
Nginx配置示例
server {
listen 80;
server_name www.yourdomain.com yourdomain.com news.yourdomain.com shop.yourdomain.com;
root /www/web/yourdomain;
index index.php index.html;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
四、织梦CMS后台绑定设置
进入栏目管理,为指定栏目绑定二级域名:
- 进入
核心 > 栏目管理 - 点击目标栏目的"更改"
- 在"高级选项"或"栏目属性"中
- 找到"绑定域名"或"跨站绑定域名"字段
- 填写二级域名地址,例如:
http://news.yourdomain.com - 保存设置
五、织梦CMS系统参数配置
确保以下系统参数正确设置:
<!-- 系统基本参数中设置 --> 站点根网址: http://www.yourdomain.com 安装目录: /(根目录安装) <!-- 如果存在多站点,在data/config.cache.inc.php中 --> $cfg_basehost='http://www.yourdomain.com'; $cfg_cmspath='/'; <!-- 多站点配置 --> $cfg_multi_site='Y'; // 开启多站点支持
六、处理栏目内的链接
绑定二级域名后,栏目内的链接需要正确地指向该域名:
<!-- 模板中使用全局标签获取域名 -->
{dede:global.cfg_basehost/}
<!-- 生成栏目链接时自动使用绑定的域名 -->
{dede:type typeid='3'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:type}
<!-- 文章链接同样会自动适配 -->
{dede:arclist typeid='3' row='10'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
七、常见问题处理
- 链接仍然是主域名:检查
$cfg_multi_site是否设置为'Y' - 图片、CSS、JS路径错误:使用绝对路径或
{dede:global.cfg_basehost/}确保资源可跨域加载 - 登录状态丢失:跨子域名时Cookie默认为主域名,需要在配置中调整Cookie域为
.yourdomain.com - 伪静态规则失效:确认每个绑定的域名都配置了相同的URL重写规则
八、.htaccess 跨域处理(Apache)
# 允许跨子域访问资源
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://news.yourdomain.com"
Header set Access-Control-Allow-Origin "http://shop.yourdomain.com"
</IfModule>
# 统一301重定向(可选:所有域名强制跳转到www)
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.yourdomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^news\.yourdomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^shop\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
建议:绑定二级域名后,在各栏目模板中统一使用
{dede:global.cfg_basehost/} 生成资源路径,避免硬编码域名。同时建议为每个子站设置独立的站点地图(sitemap)提交给搜索引擎。