织梦站点如何从根目录移至子目录?

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

核心思路

整个过程分为三个主要步骤:

如何把dede织梦站点从根目录移到子目录
(图片来源网络,侵删)
  1. 文件操作:将网站文件从根目录移动到新的子目录。
  2. 数据库修改:登录数据库,将所有存储在数据库中的、指向根目录的链接(包括文章内容、图片路径、配置等)更新为指向新的子目录。
  3. 配置文件修改:修改织梦的核心配置文件,使其适应新的路径。

第一步:准备工作(至关重要!)

在开始任何操作之前,请务比完成以下准备工作,以防万一:

  1. 备份!备份!备份!

    • 备份数据库:进入你的网站后台(/dede/目录),找到“系统” -> “数据库备份/恢复”,先进行一次完整的数据库备份,或者通过你的虚拟主机控制面板(如cPanel、宝塔面板)的数据库管理工具(如phpMyAdmin)导出数据库文件(.sql格式)。
    • 备份网站文件:通过FTP或虚拟主机文件管理器,将你网站根目录下的所有文件下载到本地电脑,确保备份完整。
  2. 记录信息

    • 旧域名www.oldsite.com
    • 新域名www.oldsite.com/subdir (这里的 subdir 就是你想创建的子目录名)
    • 数据库名称、用户名、密码:这些信息通常在 /include/config_base.php/data/config.cache.inc.php 文件中可以找到,或者在虚拟主机后台的数据库设置里。

第二步:移动文件

  1. 通过FTP连接:使用FTP工具(如FileZilla)连接到你的服务器。
  2. 创建子目录:在网站根目录下创建一个新的文件夹,subdir
  3. 移动文件
    • 将根目录下 除了 subdir 文件夹本身 的所有文件和文件夹(如 dedeincludetempletsimagesplus 等)剪切并粘贴 到刚刚创建的 subdir 文件夹中。
    • 特别注意:不要移动 subdir 文件夹,否则会形成无限嵌套,最终你的FTP结构应该是:
      /
      ├── subdir/          <-- 你的新网站根目录
      │   ├── dede/
      │   ├── include/
      │   ├── images/
      │   └── ... (所有网站文件)
      └── (其他可能存在的文件,如robots.txt, .htaccess等)

第三步:修改数据库

这是最关键的一步,需要批量替换数据库中的旧路径。

如何把dede织梦站点从根目录移到子目录
(图片来源网络,侵删)
  1. 进入phpMyAdmin:在你的虚拟主机控制面板中找到phpMyAdmin,并选择你的织梦数据库。

  2. 执行SQL查询

    • 点击顶部的 "SQL" 选项卡。
    • 在文本框中粘贴下面的SQL语句。请务必将 旧路径新路径 替换为你自己的实际路径。
    -- 1. 更新系统配置中的路径
    UPDATE `dede_sysconfig` SET `value` = REPLACE(`value`, '旧路径', '新路径') WHERE `varname` IN ('cfg_cmspath', 'cfg_cmsabs', 'cfg_indexurl', 'cfg_basehost');
    -- 2. 更新文档内容中的链接 (织梦默认使用[field:arcurl/],但有些地方可能直接存了URL)
    UPDATE `dede_archives` SET `redirecturl` = REPLACE(`redirecturl`, '旧路径', '新路径');
    -- 3. 更新自定义表单中的路径(如果使用了自定义表单)
    UPDATE `dede_diyform` SET `content` = REPLACE(`content`, '旧路径', '新路径');
    -- 4. 更新附加表中的内容(如商品、软件等模型)
    -- 以下是通用示例,如果你的模型附加表名不是 `dede_addonarticle`,请自行修改
    UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, '旧路径', '新路径');
    -- 如果还有其他模型,请继续添加,
    -- UPDATE `dede_addonsoft` SET `body` = REPLACE(`body`, '旧路径', '新路径');
    -- UPDATE `dede_addonproduct` SET `body` = REPLACE(`body`, '旧路径', '新路径');
    -- 5. 更新所有文章中的URL链接(这个非常重要,能替换文章内容里手动添加的链接)
    UPDATE `dede_archives` SET `body` = REPLACE(`body`, '旧路径', '新路径');
    UPDATE `dede_arctype` SET `description` = REPLACE(`description`, '旧路径', '新路径');
    UPDATE `dede_arctype` SET `keywords` = REPLACE(`keywords`, '旧路径', '新路径');
    UPDATE `dede_feedback` SET `msg` = REPLACE(`msg`, '旧路径', '新路径');
    UPDATE `dede_help` SET `content` = REPLACE(`content`, '旧路径', '新路径');
    UPDATE `dede_myad` SET `normbody` = REPLACE(`normbody`, '旧路径', '新路径');
    UPDATE `dede_myad` SET `expbody` = REPLACE(`expbody`, '旧路径', '新路径');
    UPDATE `dede_sgpage` SET `templet` = REPLACE(`templet`, '旧路径', '新路径');
    UPDATE `dede_sgpage` SET `body` = REPLACE(`body`, '旧路径', '新路径');
    UPDATE `dede_soft` SET `introduce` = REPLACE(`introduce`, '旧路径', '新路径');
    UPDATE `dede_special` SET `content` = REPLACE(`content`, '旧路径', '新路径');
  3. 路径替换说明

    • 旧路径:通常是你的网站域名,http://www.oldsite.com/www.oldsite.com/请务必以 结尾
    • 新路径:是你的新域名加子目录,http://www.oldsite.com/subdir/www.oldsite.com/subdir/请务必以 结尾
    • 示例:如果旧路径是 http://www.example.com/,新路径是 http://www.example.com/blog/,那么SQL语句中的替换就是将 http://www.example.com/ 替换成 http://www.example.com/blog/
  4. 执行:检查SQL语句无误后,点击 "执行" 按钮,这可能会花费一些时间,取决于你的网站数据量。

    如何把dede织梦站点从根目录移到子目录
    (图片来源网络,侵删)

第四步:修改配置文件

现在需要修改织梦的配置文件,让它知道自己的新位置在哪里。

  1. 修改 /include/config_base.php

    • 通过FTP进入 subdir/include/ 目录,下载 config_base.php 文件。

    • 用代码编辑器打开它。

    • 找到 $cfg_cmspath$cfg_cmsurl 这两个变量。

    • 将它们的值修改为你的 新子目录路径

      // 修改前
      // $cfg_cmspath = '/home/wwwroot/oldsite';
      // $cfg_cmsurl = 'http://www.oldsite.com';
      // 修改后 (假设子目录名为 subdir)
      $cfg_cmspath = '/home/wwwroot/oldsite/subdir'; // 修改为服务器上的绝对路径
      $cfg_cmsurl = 'http://www.oldsite.com/subdir'; // 修改为新的URL
    • 保存文件并上传回服务器,覆盖原文件。

  2. 修改 /data/config.cache.inc.php

    • 进入 subdir/data/ 目录,下载 config.cache.inc.php 文件。
    • 用代码编辑器打开它,这个文件是序列化过的,直接看是乱码,但我们可以直接修改里面的URL。
    • 按下 Ctrl+F 搜索 cfg_basehost,找到类似 'cfg_basehost';s:20:"http://www.oldsite.com";' 这样的行。
    • http://www.oldsite.com 修改为你的 新域名http://www.oldsite.com/subdir
    • 同样,搜索 cfg_indexurl,找到类似 'cfg_indexurl';s:25:"http://www.oldsite.com/";' 的行,修改为 'http://www.oldsite.com/subdir/';
    • 保存文件并上传回服务器。

第五步:清理缓存与最终测试

-- 展开阅读全文 --
头像
数据结构1000问,C语言如何解千题?
« 上一篇 11-29
织梦pagelist标签如何自定义样式?
下一篇 » 11-29

相关文章

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

目录[+]