Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /www/wwwroot/www.elurens.com/wp-includes/functions.php on line 6121
如何把dede织梦站点从根目录移到子目录?迁移过程中需要注意什么?_e路人seo优化

网站建设

wzjs

如何把dede织梦站点从根目录移到子目录?迁移过程中需要注意什么?

2025-06-07 01:08:50

如何安全地将织梦站点从根目录迁移到子目录

迁移前的周密准备

  1. 全面备份: 这是迁移的生命线,务必完整备份:
    • 网站文件: 使用FTP工具下载整站文件(包括/uploads/, /data/, /templets/, /include/等核心目录)。
    • 数据库: 通过织梦后台的”系统” -> “数据库备份/还原”功能进行备份,或使用phpMyAdmin导出完整数据库SQL文件。
    • 特殊配置: 记录或备份服务器配置文件(如.htaccess, httpd.conf片段)、伪静态规则、CDN设置等。
  2. 选择目标子目录: 在根目录下创建一个新的文件夹(例如/newsite/),作为迁移后的站点新家,确保目录命名清晰且无特殊字符。
  3. 环境检查: 确认目标子目录具备与根目录相同的运行环境(PHP版本、MySQL版本、必要的扩展模块如GD库、文件读写权限等)。
  4. 维护模式: 迁移前在织梦后台启用”系统基本参数”中的”站点关闭”选项,并设置友好提示,告知用户维护信息,避免操作过程中用户访问造成数据不一致。

核心迁移操作步骤

  1. 移动文件:
    • 使用可靠的FTP/SFTP工具或服务器文件管理器。
    • 将根目录下所有网站文件和目录(除了你新建的空目标子目录本身),剪切粘贴到新建的子目录(如/newsite/)中。
    • 关键点: 确保目录结构在子目录内保持完整,移动后,原来根目录下的/uploads/现在应该位于/newsite/uploads/,其他核心目录同理。
  2. 修改数据库配置:
    • 找到并编辑子目录/newsite/data/common.inc.php文件(这是核心配置文件)。
    • 定位以下关键配置项:
      //数据库连接信息
      $cfg_dbhost = 'localhost'; //数据库服务器
      $cfg_dbname = 'dedecms';   //数据库名
      $cfg_dbuser = 'root';      //数据库用户名
      $cfg_dbpwd = 'password';   //数据库密码
      $cfg_dbprefix = 'dede_';   //数据库表前缀
      $cfg_db_language = 'utf8'; //数据库编码
    • 如果数据库服务器、用户名、密码、数据库名没有改变,则无需修改。重点修改站点URL路径:
    • 查找并修改:
      //站点设置
      $cfg_cmspath = '/';  // 修改为 '/newsite/'
      $cfg_basehost = 'https://www.yourdomain.com'; // 确保正确

      $cfg_cmspath的值由原来的修改为新的子目录路径'/newsite/'(注意开头和结尾的斜杠)。

      如何把dede织梦站点从根目录移到子目录
  3. 更新模板中的路径引用:
    • 织梦模板中可能存在硬编码的绝对路径(尤其是图片、CSS、JS引用),需要更新。
    • 进入后台 -> “模板” -> “默认模板管理”(或你使用的对应模板集)。
    • 检查head.htm, footer.htm等公共模板文件以及内容页模板、列表页模板。
    • 查找形如/images/logo.png/templets/style/css.css的引用。
    • 将这些路径前加上新的子目录名,改为/newsite/images/logo.png/newsite/templets/style/css.css,更推荐使用{dede:global.cfg_cmsurl/}/images/logo.png{dede:global.cfg_templets_skin/}/css.css这样的动态标签,它们会自动适应$cfg_cmspath的配置。
  4. 调整伪静态规则:
    • 如果站点启用了伪静态(URL重写),规则文件(通常是.htaccess(Apache) 或 nginx.conf中的对应配置段)需要更新。
    • Apache (.htaccess):
      • 将规则文件移动到新的子目录/newsite/下。
      • 修改规则中的RewriteBase指令(如果存在):RewriteBase / 改为 RewriteBase /newsite/
      • 检查规则中重写路径RewriteRule的模式,确保它们在新位置下依然有效,可能需要调整路径前缀。
    • Nginx:
      • 修改站点Nginx配置文件中location ~ .*\.(php|php5)?$块内的fastcgi_param SCRIPT_FILENAME路径,指向新的子目录下的$document_root
      • 修改伪静态规则配置段(通常在location / { ... }内),将规则中的根路径替换为/newsite/rewrite ^/list-([0-9]+)\.html$ /newsite/plus/list.php?tid=$1 last;
  5. 配置服务器根目录:
    • 虚拟主机/服务器配置: 登录服务器管理面板(如cPanel, DirectAdmin)或修改Web服务器(Apache/Nginx)的配置文件。
    • 将网站域名的文档根目录(Document Root / Web Root) 从原来的/wwwroot/(根目录路径)修改为新的/wwwroot/newsite/(子目录路径),这一步至关重要,它告诉服务器新的网站文件在哪里。
    • 保存配置并重启Web服务器(Apache: service httpd restartsystemctl restart apache2; Nginx: service nginx restartsystemctl restart nginx)。

迁移后的关键验证与优化

  1. 解除维护模式: 登录织梦后台(新地址通常是https://www.yourdomain.com/newsite/dede/),进入”系统基本参数”,关闭”站点关闭”选项。
  2. 全面功能测试:
    • 前台浏览: 访问首页、栏目页、内容页,检查页面布局、图片、CSS、JS是否加载正常。
    • 链接测试: 点击导航菜单、文章内链、TAG链接等,确保所有链接指向正确的新地址(/newsite/xxx)。
    • 核心功能: 测试会员登录/注册、评论提交、搜索功能、表单提交等是否正常工作。
    • 后台操作: 测试生成首页、栏目页、内容页是否成功,检查上传图片、更新缓存等后台功能。
  3. 设置301重定向(至关重要):
    • 为了SEO不流失权重和流量,必须将旧根目录下的URL(https://www.yourdomain.com/old-page.html永久重定向(301)到新子目录下的对应URL(https://www.yourdomain.com/newsite/old-page.html)。
    • 根目录放置规则文件实现:
      • 原网站根目录(现在应该是空的或只有这个重定向文件)创建或修改.htaccess(Apache) 或对应的Nginx配置。
      • Apache (.htaccess) 示例:
        RewriteEngine On
        RewriteCond %{REQUEST_URI} !^/newsite/ [NC]  # 排除新目录本身
        RewriteRule ^(.*)$ /newsite/\ [R=301,L]
      • Nginx 配置示例 (在 server 块内):
        location / {
            if ($request_uri !~ ^/newsite/) {  # 排除新目录本身
                rewrite ^/(.*)$ /newsite/\ permanent;
            }
        }
    • 验证: 访问一个旧的根目录URL,浏览器地址栏应自动跳转到对应的新子目录URL,并返回301状态码(可用在线HTTP状态码检查工具验证)。
  4. 更新搜索引擎和外部链接:
    • 在百度搜索资源平台(原站长平台)、Google Search Console等工具中,尽快更新网站的首选域(带www或不带www)和网站地址(更新为包含子目录的新URL)。
    • 主动提交新网站地图(sitemap.xml),包含更新后的URL。
    • 联系重要的外部链接提供者(如果可行),请求他们将链接更新到新的子目录地址。

重要提醒与经验之谈

  • 彻底清理缓存: 迁移后务必清除浏览器缓存、服务器OPcache(如启用)、CDN缓存、织梦后台生成的HTML静态页面和系统缓存(后台”生成” -> “更新系统缓存”、”清理数据库冗余数据”)。
  • 处理死链: 迁移后使用死链检查工具扫描网站,及时发现并处理因迁移可能产生的404错误(可通过织梦后台”生成” -> “更新网站地图”或”更新RSS文件”辅助排查,或使用第三方工具),将发现的死链提交到百度搜索资源平台的死链提交工具。
  • 子目录权限: 确保新子目录/newsite/及其下的/uploads/, /data/等目录具有正确的文件读写权限(通常755目录/644文件,具体根据服务器环境调整)。
  • 时间选择: 尽量选择网站访问量最低的时段(如深夜或凌晨)进行操作,减少对用户的影响。
  • 逐步验证: 不要一次性修改所有地方,修改一个关键点后(如移动文件后、修改配置文件后),立即进行初步测试,快速定位问题。
  • 寻求专业协助: 如果对服务器配置、数据库操作或重定向规则不熟悉,强烈建议寻求有经验的系统管理员或开发人员协助操作,避免因误操作导致网站长时间不可访问或数据丢失,一次成功的迁移依赖于细致的规划和每一步的谨慎操作。

迁移网站目录是一项需要耐心和细致的工作,每一步的准确性都关系到最终效果,遵循上述步骤,充分准备和测试,能最大程度保障织梦站点平稳迁移到子目录,同时维护好用户体验和搜索引擎既有的信任,将根目录的重定向视为长期配置,而非临时措施,对于保持网站健康至关重要。

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

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待