织梦CMS(DedeCMS)建立地区分站(如 bj.yourdomain.com 北京站、sh.yourdomain.com 上海站)是非常常见的需求,通常用于本地化信息分类、SEO优化或地方门户。

(图片来源网络,侵删)
实现织梦地区分站主要有两种主流方案:通过栏目绑定二级域名(推荐) 和 通过独立系统节点(需修改代码)。
以下是详细的操作教程,以最常用、最稳定的“栏目绑定二级域名”方案为例:
通过“栏目+二级域名”实现(最推荐、最简单)
这种方案的逻辑是:把“北京”、“上海”当成顶级栏目来建立,然后给这些栏目分别绑定二级域名。
第一步:服务器/虚拟主机解析域名
- 登录你的域名服务商(如阿里云、腾讯云)。
- 添加A记录或CNAME记录,将
bj.yourdomain.com和sh.yourdomain.com解析到你的服务器IP。 - 重要:在服务器或虚拟主机控制面板的“绑定域名”中,将这两个二级域名也添加进去,确保能访问到网站根目录。
第二步:织梦后台创建地区栏目
- 登录织梦后台,进入核心 -> 网站栏目管理。
- 点击“增加顶级栏目”。
- 栏目名称:北京站
- 英文目录:
beijing(或者bj,尽量简短) - 栏目属性:选择“最终列表栏目”(允许发布文档)或“频道封面”。
- 重复此步骤,创建“上海站”(目录填
shanghai)等其他地区。
第三步:绑定二级域名
- 在栏目列表中,点击“北京站”后面的更改(高级参数)。
- 找到高级选项卡,向下滚动找到“多站点支持”或“绑定域名”选项(不同织梦版本位置可能稍有不同,通常在底部)。
- 勾选“启用多站点支持”。
- 在“绑定域名”中填入:
bj.yourdomain.com(注意不要带 http://)。 - 保存,对其他地区栏目重复此操作。
第四步:开启系统多站点支持(关键)
- 进入系统 -> 系统基本参数。
- 找到“核心设置”。
- 找到“是否启用多站点支持”,选择“是”。
- 点击保存,织梦会在网站根目录自动生成各个地区栏目的子文件夹(如
/beijing/)。
第五步:更新缓存与HTML
- 进入生成 -> 更新系统缓存。
- 进入生成 -> 更新网站地图。
- 进入生成 -> 一键更新网站 -> 选择“更新所有”,重新生成HTML。
通过“系统节点”实现(适合大型门户,需改代码)
如果你的分站不仅是栏目,还需要完全独立的模板、独立的配置,可以通过修改 data/common.inc.php 来实现动态切换。

(图片来源网络,侵删)
原理:通过识别当前访问的域名(如 bj.domain.com),动态赋予织梦 $cfg_df_webname(站点名称)和 $cfg_templets_dir(模板路径)。
操作步骤简述:
- 在
data/common.inc.php文件的最下方加入判断代码:$domain_host = strtolower($_SERVER['HTTP_HOST']); if ($domain_host == 'bj.yourdomain.com') { $cfg_df_webname = '北京站'; $cfg_df_dir = 'bj'; // 可以用来控制模板路径 } elseif ($domain_host == 'sh.yourdomain.com') { $cfg_df_webname = '上海站'; $cfg_df_dir = 'sh'; } else { $cfg_df_webname = '主站'; $cfg_df_dir = 'default'; } - 这种方法通常需要配合伪静态使用,把
/bj/aritcle/123.html重写到/aritcle/123.html并附带城市变量,由于涉及较多PHP和Nginx/Apache伪静态规则修改,新手不建议使用。
必须解决的三个核心问题(SEO与体验)
无论你用哪种方案做地区分站,都必须解决以下问题:
头部导航的域名切换(避免死链)
当用户访问 bj.yourdomain.com 时,如果他点击头部导航的“上海站”,应该跳转到 sh.yourdomain.com,而不是 bj.yourdomain.com/shanghai/。
解决办法:
在模板的 head.htm 中,写死绝对地址,或者使用织梦的 siteurl 标签(如果开启了多站点):

(图片来源网络,侵删)
<a href="{dede:global.cfg_basehost/}/">主站</a>
<a href="http://bj.yourdomain.com">北京</a>
<a href="http://sh.yourdomain.com">上海</a>
绝对路径问题(CSS/JS/图片加载失败)
开启了多站点后,生成的分站页面里的CSS和图片路径可能会变成 /beijing/templets/...,导致样式丢失。
解决办法:
- 确保模板中的 CSS、JS、图片 调用使用绝对路径(带上
http://或{dede:global.cfg_basehost/})。 - 或者在系统设置里,将“模板默认风格”等路径设置为绝对路径。
数据共享与隔离
- 默认情况:所有分站共享同一个后台、同一个数据库、同一个管理员,你在北京站发布的文章,不会显示在上海站(因为栏目是分开的)。
- 如果需要数据互通:比如主站的文章,分站也要显示,这需要修改分站的模板,使用
{dede:arclist typeid='顶级栏目ID'}来直接调用主站的数据。
总结建议
对于90%的织梦用户,强烈建议使用 方案一(栏目绑定二级域名),它不需要修改任何核心代码,利用织梦自带的功能就能完美实现,且对SEO非常友好,各地区的URL结构非常清晰。
