dede目录如何变成子目录?

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

这个过程需要修改几个关键配置文件,并确保所有路径都指向新的位置,请务必在操作前备份你的网站文件和数据库

dede目录变成子目录
(图片来源网络,侵删)

下面是详细的步骤,分为“通用步骤”和“具体文件修改”两部分。


第一步:通用操作步骤

  1. 备份!备份!备份!

    • 备份你的整个网站程序文件(通过 FTP 或 SSH 下载)。
    • 备份数据库(在 DEDE 后台 -> 系统 -> 数据库备份/恢复,或通过 phpMyAdmin 导出)。
  2. 上传文件到子目录

    • 通过 FTP 或 SSH 登录你的服务器。
    • 将你备份的 DEDE 网站所有文件上传到服务器的目标子目录中,如果你想放在 /mywebsite/ 目录下,就把所有文件上传到 public_html/mywebsite/ (对应 www.example.com/mywebsite/)。
  3. 修改数据库中的路径

    dede目录变成子目录
    (图片来源网络,侵删)
    • 这是最关键的一步,你需要将数据库中所有存储为绝对路径(以 开头)的记录,修改为新的子目录路径。
    • 登录你的数据库管理工具,如 phpMyAdmin。
    • 选择你的 DEDE 数据库。
    • 在 SQL 查询窗口中,执行以下几条 SQL 语句。请将 /mywebsite/ 替换为你自己的实际子目录名,且确保前后都有斜杠 。
    -- 1. 修改 dede_arctype 表中的顶级栏目路径
    UPDATE `dede_arctype` SET `typedir` = CONCAT('/mywebsite', SUBSTRING(`typedir` FROM 2)) WHERE `topid` = 0;
    -- 2. 修改 dede_arctype 表中的所有栏目路径(如果顶级栏目路径修改正确,这一步可以省略,但为了保险建议执行)
    UPDATE `dede_arctype` SET `typedir` = CONCAT('/mywebsite', `typedir`) WHERE `typedir` NOT LIKE '/mywebsite%';
    -- 3. 修改 dede_archives 表中的文章URL(如果开启了目录式)
    UPDATE `dede_archives` SET `arcurl` = CONCAT('/mywebsite', `arcurl`) WHERE `arcurl` NOT LIKE '/mywebsite%';
    -- 4. 修改 dede_site 表中的站点路径
    UPDATE `dede_site` SET `sitepath` = '/mywebsite/';
    -- 5. 修改 dede_homepageset 表中的默认主页路径
    UPDATE `dede_homepageset` SET `templet` = CONCAT('/mywebsite', `templet`) WHERE `templet` NOT LIKE '/mywebsite%';

    注意:

    • 上述 SQL 假设你的旧路径都是以 开头的,如果你的旧路径是相对路径(如 templets/default),则此方法不适用,但这种情况很少见。
    • 执行前可以先 SELECT 出一条记录看看,确认修改逻辑是否正确。

第二步:修改核心配置文件

你需要修改 DEDE 程序内部的配置文件,让它知道自己的新位置在哪里。

修改 /include/config_base.php

这个文件定义了网站的基本路径。

  • 找到 $cfg_cmspath:这个变量通常定义了网站的根目录。
  • 修改它:将其值修改为你的子目录名。
// 修改前
$cfg_cmspath = '/';
// 修改后 (假设你的子目录是 /mywebsite/)
$cfg_cmspath = '/mywebsite/';

修改 /data/common.inc.php

这个文件是 DEDE 的核心配置文件,包含了数据库连接信息和一些全局路径。

dede目录变成子目录
(图片来源网络,侵删)
  • 找到 $cfg_cmspath:同样,修改这个变量的值。
  • 找到 $cfg_templets_dir:这个变量定义了模板文件所在的目录,如果模板目录在根目录下,它可能需要被修改。
  • 找到 $cfg_member_dir:会员中心目录。
  • 找到 $cfg_phpurl:用于存放 PHP 程序的目录。

示例修改:

假设你的目录结构如下:

/www/
  |- mywebsite/
      |- dedecms/
          |- /templets/  <-- 模板目录
          |- /member/   <-- 会员目录
          |- /include/  <-- 核心程序
          |- /data/
          |- ...

并且你把 DEDE 程序放在了 /mywebsite/dedecms/ 目录下。

那么你的 common.inc.php 可能需要这样修改:

// 修改前
$cfg_cmspath = '/';
$cfg_templets_dir = '/templets';
$cfg_member_dir = '/member';
$cfg_phpurl = '/include';
// 修改后
$cfg_cmspath = '/mywebsite/dedecms';
$cfg_templets_dir = '/mywebsite/dedecms/templets';
$cfg_member_dir = '/mywebsite/dedecms/member';
$cfg_phpurl = '/mywebsite/dedecms/include';

注意: 这里的路径修改取决于你实际的文件上传位置,最稳妥的方法是,将整个 DEDE 程序文件夹(dedecms_v57_sp2_full)上传到子目录里,$cfg_cmspath 就指向这个文件夹。

修改 /dede/ 目录下的配置文件

DEDE 后台程序也需要知道新路径。

  • 打开 /dede/config.php
    • 找到 $cfg_cmspath 并修改它。
    • 找到 $cfg_basedir 并修改它,指向你的网站根目录(/mywebsite/)。
    • 找到 $cfg_templets_dir 并修改它。

示例 (/dede/config.php):

// 修改前
$cfg_cmspath = '/';
$cfg_basedir = '../';
$cfg_templets_dir = '../templets';
// 修改后 (假设 DEDE 在 /mywebsite/dedecms/)
$cfg_cmspath = '/mywebsite/dedecms';
$cfg_basedir = '../'; // 相对于 dede 目录,网站根目录是上一级
$cfg_templets_dir = '../templets';

修改模板文件中的路径

如果你的模板文件(.htm)中使用了硬编码的绝对路径, <a href="/plus/list.php?tid=1">栏目</a> <img src="/images/logo.png" />

这些也需要修改,推荐使用 DEDE 的全局标签 {dede:global.cfg_cmspath/} 来代替根目录路径。

修改前:

<link href="/templets/default/style.css" rel="stylesheet">
<a href="/plus/feedback.php">留言</a>

修改后:

<link href="{dede:global.cfg_cmspath/}/templets/default/style.css" rel="stylesheet">
<a href="{dede:global.cfg_cmspath/}/plus/feedback.php">留言</a>

第三步:最终检查与测试

  1. 清空缓存:登录 DEDE 后台,进入“系统” -> “系统基本参数” -> “性能选项”,点击“清空所有缓存”。
  2. 访问测试
    • 访问你的新网站地址:http://www.yourdomain.com/mywebsite/,检查首页是否正常。
    • 访问几个栏目页和文章页,确保链接和图片都正常。
    • 尝试访问会员中心(如果有的话):http://www.yourdomain.com/mywebsite/member/
    • 尝试登录 DEDE 后台:http://www.yourdomain.com/mywebsite/dede/,确保能正常登录和操作。

如果一切正常,恭喜你,迁移成功!如果遇到问题(如404、图片不显示、链接错误),请仔细检查以上步骤,特别是数据库的 SQL 语句和配置文件中的路径是否正确。

-- 展开阅读全文 --
头像
dede单页模板下载器安全吗?
« 上一篇 03-03
C语言sendto如何发送十六进制数据?
下一篇 » 03-03

相关文章

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

目录[+]