使用织梦DedeCMS后台的SQL命令行(最推荐、最安全)
这是最常用也是最安全的方法,因为它有织梦后台的“SQL命令行”工具作为操作界面,可以方便地预览和执行,避免误操作。

操作步骤:
-
登录织梦CMS后台:使用你的管理员账号登录到织梦后台。
-
进入SQL命令行工具:
- 在后台左侧菜单栏,找到并点击 “系统” -> “SQL命令行工具”。
- 你会看到一个文本框,可以在这里输入SQL语句。
-
编写SQL替换语句:
- 将下面的SQL语句复制到文本框中。
- 请务必修改
旧链接和新链接为你自己的实际内容!
UPDATE `dedecms_addonarticle` SET `body` = REPLACE(`body`, '旧链接', '新链接');
语句解释:
(图片来源网络,侵删)UPDATE ... SET ...:标准的SQL更新语句。dedecms_addonarticle:织梦存储文章内容的表名,如果你的表前缀不是dedecms_,请修改成你自己的表前缀(如dede_)。body:存储文章HTML内容的字段名。REPLACE(body, '旧链接', '新链接'):核心函数,表示在body字段中,将所有旧链接替换为新链接。
-
预览和执行:
- 强烈建议先点击“查询”按钮! 这会显示将要被修改的记录数量,让你确认操作范围是否正确。
- 如果查询结果是你想要的,再点击“执行”按钮来完成替换。
-
更新网站缓存:
- 操作完成后,为了确保新内容能立即生效,建议更新一下网站缓存。
- 在后台点击 “系统” -> “一键更新网站” -> “更新所有缓存”。
高级用法(替换特定域名的链接):
如果你想批量替换所有指向某个旧域名(old.com)的链接,可以使用 LIKE 操作符。
-- 将所有包含 'old.com' 的链接替换为 'new.com' UPDATE `dedecms_addonarticle` SET `body` = REPLACE(`body`, 'old.com', 'new.com');
注意:这种方法会替换所有包含 old.com 的字符串,即使它不是完整的URL(http://old.com/image.jpg 和 www.old.com 都会被替换),如果你需要更精确的匹配,可以考虑使用正则表达式,但SQL命令行工具对正则的支持可能有限,方法二会更强大。

直接操作数据库(功能最强大,风险最高)
如果你对SQL非常熟悉,或者需要执行更复杂的替换(如使用正则表达式),可以直接登录你的数据库管理工具(如phpMyAdmin)进行操作。
操作步骤:
-
登录phpMyAdmin:通过你的主机控制面板进入phpMyAdmin。
-
选择数据库:在左侧列表中选择你的织梦网站数据库。
-
执行SQL:
- 点击顶部的“SQL”选项卡。
- 在输入框中粘贴SQL语句,与方法一中的语句基本相同。
- 注意:在phpMyAdmin中,如果表前缀是
dede_,那么语句就是:UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, '旧链接', '新链接');
-
执行:点击“执行”按钮。
正则表达式替换(高级):
在phpMyAdmin中,你可以使用正则表达式进行更灵活的替换,语法如下:
-- 使用正则表达式,将 body 中所有以 http://old.com 开头的链接,替换为 http://new.com UPDATE `dede_addonarticle` SET `body` = REGEXP_REPLACE(`body`, 'http://old\.com', 'http://new.com');
注意:
REGEXP_REPLACE是MySQL 8.0+ 版本才支持的函数。- 正则表达式中的点 需要转义为
\.。 - 此方法对旧版MySQL不兼容。
使用织梦的“内容替换”插件(可选,不推荐)
织梦官方或第三方开发者可能提供过“内容替换”的插件或模块,你可以通过后台的“模块”或“插件”管理中查找。
为什么不推荐?
- 兼容性问题:插件可能与你的织梦版本不兼容,导致网站出错。
- 功能局限:很多插件只是简单地调用
REPLACE函数,和方法一效果一样,但多了一层潜在的风险。 - 安全性:来源不明的插件可能包含恶意代码。
如果你确实想尝试,请务必从官方或信誉良好的第三方网站下载,并安装前备份网站。
⚠️ 重要注意事项(必读!)
-
备份!备份!备份! 在执行任何SQL
UPDATE操作之前,务必备份数据库!这是防止操作失误导致数据丢失的唯一有效方法,你可以在phpMyAdmin中“导出”整个数据库,或使用织梦后台的“系统” -> “数据库备份/恢复”功能。 -
确认表前缀 织梦的数据库表默认前缀是
dede_,但也有可能是dedecms_或其他自定义前缀,在执行SQL前,请务必确认你的表前缀,可以在dede_config表中查看cfg_dbprefix字段的值。 -
测试环境先行 如果你的网站是正在运营的,强烈建议先在本地或测试服务器上操作,确认效果无误后再部署到正式环境。
-
小心替换内容 确保你的
旧链接和新链接是精确的,如果你想替换http://www.old.com/a,但写成了old.com,http://www.old.com/abc这样的链接也会被错误替换。 -
检查其他地方 除了文章内容(
body),链接还可能存在于文章摘要、自定义字段等地方,如果需要全面替换,你可能需要修改其他相关的表,如dedecms_archives(文章主表)等。
| 方法 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| 后台SQL命令行 | 安全、方便、有预览功能,适合大多数用户 | 功能相对基础 | ★★★★★ |
| 直接数据库操作 | 功能强大,支持复杂SQL和正则 | 风险高,需要数据库知识,无后台保护 | ★★★☆☆ |
| 使用插件 | 可能有图形界面 | 兼容性差,有安全隐患,功能可能重复 | ★☆☆☆☆ |
对于绝大多数用户来说,方法一(使用织梦后台的SQL命令行)是最佳选择,它在安全性和易用性之间取得了最好的平衡。
