织梦换域名后路径错误怎么办?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 织梦建站 正文

核心问题原因

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

织梦换域名后路径不对
(图片来源网络,侵删)
  • 中的图片路径<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. 修正伪静态规则(如果使用)。

第一步:修改核心配置文件 (至关重要)

这一步是告诉织梦系统,你的网站新域名是什么,让新生成的链接都使用新域名。

  1. 登录你的网站根目录,通过FTP或文件管理器,找到并修改以下两个文件:

    织梦换域名后路径不对
    (图片来源网络,侵删)
    • /data/common.inc.php
    • /include/config_base.php
  2. 修改 common.inc.php

    • 找到以下变量,将它们的值从旧域名改为新域名。
    • $cfg_multi_site:如果设置为 'Y',表示开启了多站点模式,需要确保这里的域名正确,通常保持为 'N' 即可。
    • $cfg_basehost这是最关键的一个,必须修改为新域名,http://www.new-domain.com
    • $cfg_cmspath:安装目录,通常保持不变。
    • $cfg_mainsite:主站点域名,同样需要修改为新域名。
  3. 修改 config_base.php

    • 找到 $cfg_basehost,同样将其修改为新域名。

完成这一步后,登录织梦后台,生成新页面时,链接和图片路径就会自动使用新域名了。 历史数据 中的路径仍然是旧的,所以必须进行第二步。**


第二步:批量替换数据库中的旧域名 (最核心的步骤)

这是修复所有已有内容路径的关键,织梦后台提供了非常方便的“数据库备份与恢复”功能来实现批量替换。

织梦换域名后路径不对
(图片来源网络,侵删)

操作前务必备份数据库! 这是最重要的安全措施!

  1. 登录织梦后台 (/dede/)。

  2. 进入“系统” -> “数据库备份/恢复”

  3. 点击“数据表批量替换”

  4. 填写替换信息

    • 要替换的内容:在第一个文本框中输入你的 旧域名 (http://www.old-domain.com)。建议包含完整的协议(http://或https://),以防遗漏。
    • 替换成的内容:在第二个文本框中输入你的 新域名 (http://www.new-domain.com)。
    • 替换范围务必勾选所有表!通常包括 #@__archives (文章表), #@__arctype (栏目表), #@__addonarticle (文章附加表), #@__uploads (上传记录表) 等,默认会勾选常用表,但为了彻底,建议全选。
  5. 执行替换

    • 确认信息无误后,点击“提交”按钮。
    • 系统会开始执行SQL替换,这个过程可能需要一些时间,具体取决于你的网站数据量,请耐心等待,不要刷新或关闭页面。

替换完成后,你网站前台的大部分路径问题(文章链接、图片等)就已经解决了。


第三步:检查并修正伪静态规则

如果你的网站开启了伪静态(URL重写),更换域名后,伪静态规则可能也需要相应调整。

  1. 检查网站根目录的伪静态文件

    • Apache服务器:查看 .htaccess 文件。
    • Nginx服务器:查看 nginx.conf 文件,或者在虚拟主机配置中查找。
  2. 分析规则

    • 大多数情况下,伪静态规则(如 RewriteRule)本身是相对路径的,所以不需要修改。RewriteRule ^a/(\d+).html$ /plus/view.php?aid=$1,这个规则是通用的。
    • 如果你的规则中硬编码了旧域名(这种情况较少见),那么就需要修改。
  3. 常见问题

    • 如果伪静态规则没有问题,但栏目页或列表页的链接仍然不正确,可能是因为栏目路径(如 /a/)在数据库中是绝对路径,这种情况通常在第二步的数据库批量替换中已经修复。
    • 如果后台的“更新HTML”或“生成栏目”等功能出现路径错误,可以尝试在后台的“系统” -> “系统基本参数” -> “核心设置”中,检查“是否使用伪静态”选项,并重新保存一下。

常见问题与补充技巧

  • 问题1:后台登录后出现空白或404。

    • 原因common.inc.phpconfig_base.php 中的 $cfg_basehost 修改错误,或者权限问题。
    • 解决:检查文件内容是否正确,确保文件可读。
  • 问题2:图片路径替换后,部分图片还是不显示。

    • 原因:可能是图片使用了相对路径(如 /uploads/...),而你的网站是放在子目录下的,或者图片路径被写死在了JS/CSS文件中。
    • 解决:可以尝试在第三步的“数据表批量替换”中,将相对路径 替换为新域名,http://www.new-domain.com/,但这需要非常谨慎,可能会影响其他地方,更稳妥的方法是手动检查并修改这些特定文件。
  • 问题3:网站开启了SSL(HTTPS)。

    • 操作:除了将新域名设置为 https://new-domain.com,你还需要在后台“系统基本参数” -> “核心设置”中,将“网站是否开启HTTPS”设置为“是”,这样,织梦在生成链接时会自动使用 https://
  • 终极技巧:使用DedeCMS自带的“一键更新网站”功能。

    在完成以上所有步骤后,可以进入后台的“生成”栏目,使用“一键更新网站”功能,它会重新生成所有栏目、文档和首页HTML,确保所有链接都指向新域名。

总结流程

  1. 备份数据库和网站文件 (安全第一!)。
  2. 修改 /data/common.inc.php/include/config_base.php 中的 $cfg_basehost 为新域名。
  3. 登录后台,使用“系统” -> “数据库备份/恢复” -> “数据表批量替换”功能,将数据库中的旧域名全部替换为新域名。
  4. 检查伪静态规则,确保没有硬编码旧域名。
  5. (可选) 在后台“核心设置”中开启HTTPS(如果适用)。
  6. (推荐) 使用“一键更新网站”功能重新生成所有页面。
  7. 清空浏览器缓存,访问网站检查效果。

按照这个流程操作,99%的织梦换域名路径问题都可以完美解决,祝你操作顺利!

-- 展开阅读全文 --
头像
织梦更行栏目为何突成空白?
« 上一篇 今天
c语言怎么输入double
下一篇 » 今天

相关文章

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

目录[+]