菜鸟科技网

如何把dede织梦站点从根目录移到子目录

DedeCMS站点从根目录移至子目录需调整系统参数、模板路径及数据库图片链接

DedeCMS(织梦)站点从根目录迁移到子目录是一个涉及多步骤的过程,需要仔细调整系统配置、模板路径和数据库内容,以下是详细的操作指南:

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

前期准备与备份

  1. 完整备份网站文件和数据库

    包括所有程序文件(如uploads文件夹)、模板文件、附件资源及MySQL数据库,建议使用FTP工具下载整个站点目录,并通过phpMyAdmin导出SQL数据,这一步至关重要,可避免因操作失误导致数据丢失。

  2. 创建目标子目录并移动文件

    • 在服务器或本地环境中新建一个子目录(例如名为“cms”),然后将原根目录下的所有文件(除数据库外)剪切至此子目录中,注意保持原有目录结构不变,尤其是templets(模板)、uploads(用户上传文件)等关键文件夹的位置关系。

修改系统核心配置参数

  1. 登录后台更新基础设置

    如何把dede织梦站点从根目录移到子目录-图2
    (图片来源网络,侵删)
    • 进入DedeCMS管理后台 → “系统” → “系统基本参数”,在“核心设置”区域找到以下选项并修改:
      • 站点根网址:改为新路径格式http://域名/子目录名
      • 网页主页链接:设置为/子目录名
      • DedeCms安装目录:同样填入/子目录名,保存后需执行全站生成以确保缓存同步更新。
  2. 调整数据库中的绝对路径引用
    由于图片和其他媒体资源默认存储为绝对路径(如/uploads/image.jpg),直接迁移后会导致链接失效,需批量替换以下数据表中的相关字段: | 数据表名称 | 涉及字段 | 原始值示例 | 替换为目标值 | |--------------------------|------------------|---------------------|-----------------------------| | dede_uploads | url | /uploads/... | /子目录名/uploads/... | | dede_archives | litpic | /uploads/... | /子目录名/uploads/... | | dede_addonarticle | body | /uploads/... | /子目录名/uploads/... | | dede_addonimages | imgurls | /uploads/... | /子目录名/uploads/... |

    实现方法有两种:

    • SQL命令法:登录phpMyAdmin执行类似语句:UPDATE dede_uploads SET url=REPLACE(url, '/uploads/', '/子目录名/uploads/');
    • 可视化工具法:通过后台“核心→数据库内容替换”功能完成批量替换,效率更高且不易出错。
  3. 修正模板文件中的路径引用
    检查所有模板文件(位于templets文件夹内),将CSS、JS及静态资源的绝对路径改为相对路径,原代码中的<link href="/css/style.css">应改为<link href="../../css/style.css">,或者根据实际层级动态调整,若存在硬编码的图片地址,也需同步更新至新路径。

处理特殊组件与缓存机制

  1. 更新全局变量定义文件
    打开include/common.inc.php,定位到define('DEDEDATA', ...)这一行,将其值更改为新的物理路径,若原指向/data,现应改为/子目录名/data,此操作确保验证码生成等功能正常运作。

    如何把dede织梦站点从根目录移到子目录-图3
    (图片来源网络,侵删)
  2. 重构站点地图与RSS馈送链接
    默认情况下,系统生成的网站地图和RSS文件存放在data目录下,但该目录通常被Robots协议禁止爬取,解决方法如下:

    • 手动创建独立的公开目录(如rss);
    • 编辑makehtml_map.php脚本,将原本指向$cfg_cmspath."/data/sitemap.html"的部分改为新路径$cfg_cmspath."/rss/sitemap.html"
    • 同时修改模板头部文件(如head.htm)中的导航链接,使前端页面正确跳转至新的地图地址。
  3. 清理并重建缓存
    删除tplcache目录下的所有临时文件,并在后台重新配置缓存存储位置,随后依次点击“更新首页”、“更新栏目页”、“更新文档页”,强制刷新全部缓存数据。

验证与调试

  1. 全面测试功能模块
    重点检查以下几个方面是否正常工作:

    • 文章列表页的图片缩略图展示;详情页中的多媒体嵌入效果;
    • 会员登录、评论提交等交互功能;
    • 第三方插件(如有)的兼容性表现。
  2. 修复残留问题
    若发现某些资源仍未加载成功,可通过浏览器开发者工具查看报错信息,针对性地修复剩余的绝对路径引用,常见的遗漏点包括浮动广告代码、统计脚本等隐蔽位置。

FAQs

Q1: 迁移后为什么部分图片仍然无法显示?

A1: 这是由于数据库中仍有未被替换的旧路径导致的,请再次确认是否已执行完整的SQL替换操作,特别是对dede_addonarticle表中body进行了更新,某些编辑器自动添加的图片标签可能包含隐藏的绝对路径,需要手动排查。

Q2: 如何避免下次升级时重复出现路径错误?

A2: 建议养成使用相对路径的习惯,尽量减少绝对路径的使用,在开发阶段可通过浏览器模拟不同部署环境进行测试,确保代码具备较强的移植性,定期备份配置文件和数据库脚本,以便快速恢复已知状态。

通过以上步骤,您可以顺利完成DedeCMS站点从根目录到子目录的迁移,并确保各项功能的正常运行,整个过程的核心在于统一管理路径引用方式,避免混合使用绝对路径与

分享:
扫描分享到社交APP
上一篇
下一篇