织梦cms栏目绑定二级域名

栏目绑定二级域名的意义

为织梦CMS的栏目绑定独立二级域名可以将不同栏目作为独立站点运营,有利于多品牌管理和SEO优化。例如,news.yourdomain.com 指向新闻栏目,shop.yourdomain.com 指向商城栏目。

一、前期准备

  1. 拥有对域名的DNS管理权限
  2. 服务器支持绑定多个域名(Apache/Nginx虚拟主机配置)
  3. 确保站点根目录对所有绑定的域名可访问
  4. 织梦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后台绑定设置

进入栏目管理,为指定栏目绑定二级域名:

  1. 进入 核心 > 栏目管理
  2. 点击目标栏目的"更改"
  3. "高级选项""栏目属性"
  4. 找到"绑定域名""跨站绑定域名"字段
  5. 填写二级域名地址,例如:http://news.yourdomain.com
  6. 保存设置

五、织梦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}

七、常见问题处理

八、.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)提交给搜索引擎。