如何将独立WordPress站点迁移至已有多站点实现子路径访问?
将www.two.com合并到www.one.com多站点作为子站点(路径www.one.com/two/)的最优方法
嘿,我来给你梳理下实际操作中靠谱的步骤,完美实现你的需求:
一、先确认基础前提
- 确保你的www.one.com多站点是子目录模式(因为你要的是
www.one.com/two/这种路径形式),如果之前是子域名模式,得先切换到子目录模式(不过你说已经配置好多站点,应该已经确认过这个了,还是提一句以防万一) - 再次确认你已经备份了两个站点的文件和数据库,包括当前www.one.com多站点的全部数据,操作前备份永远是最稳妥的
二、在多站点中创建目标子站点
- 登录www.one.com的主站点仪表盘,找到我的站点 > 网络管理 > 站点 > 添加新站点
- 站点地址栏直接填
two(不用加域名,系统会自动生成www.one.com/two/的路径),站点标题可以和原www.two.com保持一致,管理员邮箱填你常用的(或者原站点的管理员邮箱) - 点击「添加站点」,等系统创建完成,这个新子站点会有独立的数据库表前缀(比如
wp_2_开头,具体看你的多站点配置)
三、导入原www.two.com的内容到新子站点
- 先导出原站点内容:登录www.two.com的仪表盘,进入工具 > 导出,选择「全部内容」,下载生成的XML导出文件
- 再导入到新子站点:登录
www.one.com/two/的仪表盘,进入工具 > 导入,选择「WordPress」导入工具(如果没安装,点击「安装插件」完成安装),上传刚才的XML文件 - 导入时记得勾选「下载并导入文件附件」,这样原站点的图片、视频等媒体文件会自动迁移到多站点的子站点目录下;另外,如果原站点有自定义主题或插件,要先在多站点的网络管理后台安装,然后选择「网络启用」或者仅在这个子站点启用
四、批量替换内容中的旧域名链接
原站点的文章、页面里肯定有大量指向www.two.com的链接,必须替换成新路径,这里有两种方法:
方法1:用插件(简单安全)
在子站点仪表盘安装并启用「Better Search Replace」插件,然后:
- 搜索内容填
https://www.two.com - 替换内容填
https://www.one.com/two - 选择需要替换的数据库表(一般全选即可)
- 勾选「运行安全检查」,然后点击「运行搜索/替换」
方法2:用SQL命令(适合有数据库操作经验的用户)
先备份多站点数据库,然后登录数据库管理工具(比如phpMyAdmin),找到新子站点对应的数据库表(前缀比如wp_2_),执行以下SQL语句:
UPDATE wp_2_posts SET post_content = REPLACE(post_content, 'https://www.two.com', 'https://www.one.com/two'); UPDATE wp_2_postmeta SET meta_value = REPLACE(meta_value, 'https://www.two.com', 'https://www.one.com/two');
五、设置原域名的301重定向(可选但强烈推荐)
为了让原来访问www.two.com的用户自动跳转到新路径,需要设置永久重定向:
- 如果你的服务器用的是Apache,在原www.two.com的根目录
.htaccess文件里添加:RewriteEngine On RewriteRule ^(.*)$ https://www.one.com/two/$1 [R=301,L] - 如果是Nginx,在原站点的服务器配置文件里添加:
server { listen 80; listen [::]:80; server_name www.two.com; return 301 https://www.one.com/two$request_uri; } - 之后可以把原
www.two.com的域名解析指向到主站点的服务器IP,确保重定向生效
六、测试和收尾
- 访问
www.one.com/two/,逐一检查页面、文章、媒体文件是否正常显示,主题和插件功能是否正常 - 测试原域名
www.two.com的各个页面,确认都能正确跳转到新路径 - 如果有自定义主题或代码里的硬编码链接,需要手动修改替换,确保没有遗漏
内容的提问来源于stack exchange,提问作者creativeartbd
相关产品推荐
相关产品推荐

