dede系统地区分站如何搭建?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 DEDE建站 正文

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

dede 系统地区分站
(图片来源网络,侵删)

实现织梦地区分站主要有两种主流方案:通过栏目绑定二级域名(推荐)通过独立系统节点(需修改代码)

以下是详细的操作教程,以最常用、最稳定的“栏目绑定二级域名”方案为例:


通过“栏目+二级域名”实现(最推荐、最简单)

这种方案的逻辑是:把“北京”、“上海”当成顶级栏目来建立,然后给这些栏目分别绑定二级域名。

第一步:服务器/虚拟主机解析域名

  1. 登录你的域名服务商(如阿里云、腾讯云)。
  2. 添加A记录或CNAME记录,将 bj.yourdomain.comsh.yourdomain.com 解析到你的服务器IP。
  3. 重要:在服务器或虚拟主机控制面板的“绑定域名”中,将这两个二级域名也添加进去,确保能访问到网站根目录。

第二步:织梦后台创建地区栏目

  1. 登录织梦后台,进入核心 -> 网站栏目管理
  2. 点击“增加顶级栏目”。
    • 栏目名称:北京站
    • 英文目录beijing (或者 bj,尽量简短)
    • 栏目属性:选择“最终列表栏目”(允许发布文档)或“频道封面”。
  3. 重复此步骤,创建“上海站”(目录填 shanghai)等其他地区。

第三步:绑定二级域名

  1. 在栏目列表中,点击“北京站”后面的更改(高级参数)。
  2. 找到高级选项卡,向下滚动找到“多站点支持”“绑定域名”选项(不同织梦版本位置可能稍有不同,通常在底部)。
  3. 勾选“启用多站点支持”。
  4. 在“绑定域名”中填入:bj.yourdomain.com(注意不要带 http://)。
  5. 保存,对其他地区栏目重复此操作。

第四步:开启系统多站点支持(关键)

  1. 进入系统 -> 系统基本参数
  2. 找到“核心设置”
  3. 找到“是否启用多站点支持”,选择“是”
  4. 点击保存,织梦会在网站根目录自动生成各个地区栏目的子文件夹(如 /beijing/)。

第五步:更新缓存与HTML

  1. 进入生成 -> 更新系统缓存
  2. 进入生成 -> 更新网站地图
  3. 进入生成 -> 一键更新网站 -> 选择“更新所有”,重新生成HTML。

通过“系统节点”实现(适合大型门户,需改代码)

如果你的分站不仅是栏目,还需要完全独立的模板独立的配置,可以通过修改 data/common.inc.php 来实现动态切换。

dede 系统地区分站
(图片来源网络,侵删)

原理:通过识别当前访问的域名(如 bj.domain.com),动态赋予织梦 $cfg_df_webname(站点名称)和 $cfg_templets_dir(模板路径)。

操作步骤简述

  1. 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';
    }
  2. 这种方法通常需要配合伪静态使用,把 /bj/aritcle/123.html 重写到 /aritcle/123.html 并附带城市变量,由于涉及较多PHP和Nginx/Apache伪静态规则修改,新手不建议使用。

必须解决的三个核心问题(SEO与体验)

无论你用哪种方案做地区分站,都必须解决以下问题:

头部导航的域名切换(避免死链)

当用户访问 bj.yourdomain.com 时,如果他点击头部导航的“上海站”,应该跳转到 sh.yourdomain.com,而不是 bj.yourdomain.com/shanghai/解决办法: 在模板的 head.htm 中,写死绝对地址,或者使用织梦的 siteurl 标签(如果开启了多站点):

dede 系统地区分站
(图片来源网络,侵删)
<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结构非常清晰。

-- 展开阅读全文 --
头像
C语言do while(0)的巧妙用途是什么?
« 上一篇 今天
dede内容页图集调用
下一篇 » 今天

相关文章

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

目录[+]