如何将 wordpress 站点映射或复制到现有站点路径中的子文件夹?

How to map or copy a wordpress site to a subfolder in an existing site's route?

我有一个 Wordpress 博客 (blog.xxx.com)。我有一个托管在 aws 上的 nuxt 个人网站 yyy.com。

现在我想将 Wordpress 博客 (blog.xxx.com) 映射或迁移到我的个人站点 (yyy.com/blog)。

我们怎样才能做到这一点? yyy.com 应该显示我的个人网站和 yyy。com/blog 应该带你到我的博客。

我可以在 Wordpress 中配置这个吗?或者我还能做些什么来实现这个?

我尝试将它映射到一个新域,但我不确定如何映射到特定路由并在我访问 (yyy.com/blog/{blog-name}.

如果我没有正确理解你的问题,你想将你的 WordPress 安装从 blog.xxx.com 移动到 yyy.com/blog,对吗? WordPress 提供了官方指南:https://wordpress.org/support/article/moving-wordpress/

将数据库 table wp_options 中的 siteurlhome 字段更改为 yyy.com/blog 后,您可以使用 Better Search Replace (https://wordpress.org/plugins/better-search-replace/) 扫描您的 WordPress 数据库并用您博客的新 URL 替换每个 URL 帖子等。

此外,如果是 Apache 网络服务器,您需要处理 .htaccess 文件并将 RewriteBase 更改为 /blog(假设它是 /之前)。

一些特殊的插件(用于缓存等)需要一些特殊处理,但通常清除缓存可以解决问题。

好吧,尽管 Johannes 对我来说非常清楚,但我会尽量简化。

  1. 将 WordPress 文件从 blog.xxx.com 克隆到 yyy.com/blog 目录。 (不确定您的服务器是如何配置的,但您可能可以访问它。)

  2. 将数据库克隆到新服务器。

  3. 运行 sql 替换查询:

    UPDATE wp_options SET option_value = replace(option_value, 'https://blog.xxx.com', 'https://yyy.com/blog') WHERE option_name = 'home' OR option_name = 'siteurl';
    
    UPDATE wp_posts SET guid = replace(guid, 'https://blog.xxx.com','https://yyy.com/blog');
    
    UPDATE wp_posts SET post_content = replace(post_content, 'https://blog.xxx.com', 'https://yyy.com/blog');
    
    UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://blog.xxx.com','https://yyy.com/blog');
  1. 更新您的 wp-config.php 以匹配您的新数据库。

  2. 登录yyy.com/blog/wp-admin

  3. 转到设置并更新您的永久链接

是的,您可以在主网站的子文件夹中设置 WP 站点。我不建议手动操作,太多会出错。使用 plugin such as Duplicator - 使用起来非常简单:

  1. 将其安装到 站点以复制 并构建一个包 - 这会将您的整个网站打包成一个 zip 文件
  2. 将此 ZIP 文件和 installer.php 复制到主机上的新位置(例如yyy.com/blog
  3. 创建一个新的空数据库
  4. 运行 安装程序向导 并确保新设置中的 URL 是 https://www.yyy.com/blog

就是这样!

您可以在几分钟内完成整个网站的设置并且 运行 完美!它甚至会正确设置 .htaccess

不再设置数据库、更改数据库中的 URL、404 错误、损坏的链接、损坏的图像等。手动移动 Wordpress 站点可能很棘手,您可能会浪费数小时来尝试解决问题。甚至机构也使用插件来避免这些问题。