核心问题原因
问题的根源在于数据库中存储的路径是旧域名的绝对路径,

(图片来源网络,侵删)
- 中的图片路径:
<img src="http://www.old-domain.com/uploads/image/2025/01/01.jpg"> - 文章/栏目链接:
<a href="http://www.old-domain.com/a/2025/01/01.html"> - 网站Logo、CSS、JS等资源路径:
<link rel="stylesheet" href="http://www.old-domain.com/templates/default/css/style.css">
更换域名后,所有这些链接都指向了不存在的旧地址。
解决方案:三步走
解决这个问题的核心思路是:修改系统配置;2. 批量替换数据库内容;3. 修正伪静态规则(如果使用)。
第一步:修改核心配置文件 (至关重要)
这一步是告诉织梦系统,你的网站新域名是什么,让新生成的链接都使用新域名。
-
登录你的网站根目录,通过FTP或文件管理器,找到并修改以下两个文件:
(图片来源网络,侵删)/data/common.inc.php/include/config_base.php
-
修改
common.inc.php:- 找到以下变量,将它们的值从旧域名改为新域名。
$cfg_multi_site:如果设置为 'Y',表示开启了多站点模式,需要确保这里的域名正确,通常保持为 'N' 即可。$cfg_basehost:这是最关键的一个,必须修改为新域名,http://www.new-domain.com。$cfg_cmspath:安装目录,通常保持不变。$cfg_mainsite:主站点域名,同样需要修改为新域名。
-
修改
config_base.php:- 找到
$cfg_basehost,同样将其修改为新域名。
- 找到
完成这一步后,登录织梦后台,生成新页面时,链接和图片路径就会自动使用新域名了。 历史数据 中的路径仍然是旧的,所以必须进行第二步。**
第二步:批量替换数据库中的旧域名 (最核心的步骤)
这是修复所有已有内容路径的关键,织梦后台提供了非常方便的“数据库备份与恢复”功能来实现批量替换。

(图片来源网络,侵删)
操作前务必备份数据库! 这是最重要的安全措施!
-
登录织梦后台 (
/dede/)。 -
进入“系统” -> “数据库备份/恢复”。
-
点击“数据表批量替换”。
-
填写替换信息:
- 要替换的内容:在第一个文本框中输入你的 旧域名 (
http://www.old-domain.com)。建议包含完整的协议(http://或https://),以防遗漏。 - 替换成的内容:在第二个文本框中输入你的 新域名 (
http://www.new-domain.com)。 - 替换范围:务必勾选所有表!通常包括
#@__archives(文章表),#@__arctype(栏目表),#@__addonarticle(文章附加表),#@__uploads(上传记录表) 等,默认会勾选常用表,但为了彻底,建议全选。
- 要替换的内容:在第一个文本框中输入你的 旧域名 (
-
执行替换:
- 确认信息无误后,点击“提交”按钮。
- 系统会开始执行SQL替换,这个过程可能需要一些时间,具体取决于你的网站数据量,请耐心等待,不要刷新或关闭页面。
替换完成后,你网站前台的大部分路径问题(文章链接、图片等)就已经解决了。
第三步:检查并修正伪静态规则
如果你的网站开启了伪静态(URL重写),更换域名后,伪静态规则可能也需要相应调整。
-
检查网站根目录的伪静态文件:
- Apache服务器:查看
.htaccess文件。 - Nginx服务器:查看
nginx.conf文件,或者在虚拟主机配置中查找。
- Apache服务器:查看
-
分析规则:
- 大多数情况下,伪静态规则(如 RewriteRule)本身是相对路径的,所以不需要修改。
RewriteRule ^a/(\d+).html$ /plus/view.php?aid=$1,这个规则是通用的。 - 如果你的规则中硬编码了旧域名(这种情况较少见),那么就需要修改。
- 大多数情况下,伪静态规则(如 RewriteRule)本身是相对路径的,所以不需要修改。
-
常见问题:
- 如果伪静态规则没有问题,但栏目页或列表页的链接仍然不正确,可能是因为栏目路径(如
/a/)在数据库中是绝对路径,这种情况通常在第二步的数据库批量替换中已经修复。 - 如果后台的“更新HTML”或“生成栏目”等功能出现路径错误,可以尝试在后台的“系统” -> “系统基本参数” -> “核心设置”中,检查“是否使用伪静态”选项,并重新保存一下。
- 如果伪静态规则没有问题,但栏目页或列表页的链接仍然不正确,可能是因为栏目路径(如
常见问题与补充技巧
-
问题1:后台登录后出现空白或404。
- 原因:
common.inc.php或config_base.php中的$cfg_basehost修改错误,或者权限问题。 - 解决:检查文件内容是否正确,确保文件可读。
- 原因:
-
问题2:图片路径替换后,部分图片还是不显示。
- 原因:可能是图片使用了相对路径(如
/uploads/...),而你的网站是放在子目录下的,或者图片路径被写死在了JS/CSS文件中。 - 解决:可以尝试在第三步的“数据表批量替换”中,将相对路径 替换为新域名,
http://www.new-domain.com/,但这需要非常谨慎,可能会影响其他地方,更稳妥的方法是手动检查并修改这些特定文件。
- 原因:可能是图片使用了相对路径(如
-
问题3:网站开启了SSL(HTTPS)。
- 操作:除了将新域名设置为
https://new-domain.com,你还需要在后台“系统基本参数” -> “核心设置”中,将“网站是否开启HTTPS”设置为“是”,这样,织梦在生成链接时会自动使用https://。
- 操作:除了将新域名设置为
-
终极技巧:使用DedeCMS自带的“一键更新网站”功能。
在完成以上所有步骤后,可以进入后台的“生成”栏目,使用“一键更新网站”功能,它会重新生成所有栏目、文档和首页HTML,确保所有链接都指向新域名。
总结流程
- 备份数据库和网站文件 (安全第一!)。
- 修改
/data/common.inc.php和/include/config_base.php中的$cfg_basehost为新域名。 - 登录后台,使用“系统” -> “数据库备份/恢复” -> “数据表批量替换”功能,将数据库中的旧域名全部替换为新域名。
- 检查伪静态规则,确保没有硬编码旧域名。
- (可选) 在后台“核心设置”中开启HTTPS(如果适用)。
- (推荐) 使用“一键更新网站”功能重新生成所有页面。
- 清空浏览器缓存,访问网站检查效果。
按照这个流程操作,99%的织梦换域名路径问题都可以完美解决,祝你操作顺利!
