wordpress建站公司将WPMultisite移动到子目录

首先,我已经阅读了很多关于这个过程的帖子。 然而,由于各种原因,这个过程仍然难以实施或排除故障,甚至缺乏抽象的例子,或者可能过于抽象。 还有一些“不能做”的帖子,几乎总是跟随着“有了 3.5,你现在可以”的警告,所以是否可以仍然模棱两可,尽管这无疑是重要的。

概括:

如何将 wordpress 多站点 (WPMS) 从 root.com 移动到 root/blogs?

对于此示例,我们将 WPMS 从“root.com”移动到“root.com/blogs”

我知道我需要适当地更新数据库和 wp-config.php 中的路径。 看来我可能还必须更新 .htaccess? 我也知道搜索/替换和 mysql 查询更新的序列化问题。

我有一个 WPMS,我已经更新到 3.5。 我发现下表包含域和路径信息

移动到子目录之前的现有工作配置

select blog_id, domain, path from wp_blogs; +---------+-------------+--------+ | blog_id | domain | path | +---------+-------------+--------+ | 1 | root.com "https://wordpress.stackexchange.com/" | 2 | root.com | /matt/ | +---------+-------------+--------+ 
select * in wp_site; +----+-------------+------+ | id | domain | path | +----+-------------+------+ | 1 | root.com "https://wordpress.stackexchange.com/" +----+-------------+------+ 
select option_name,option_value from wp_2_options where option_name="home" or option_name="siteurl"; +-------------+--------------------------+ | option_name | option_value | +-------------+--------------------------+ | home | http://root.com/matt/ | | siteurl | http://root.com/matt/ | +-------------+--------------------------+ 
define('WP_ALLOW_MULTISITE', true); define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', false); $base="https://wordpress.stackexchange.com/"; define( 'DOMAIN_CURRENT_SITE', 'root.com' ); define( 'PATH_CURRENT_SITE', "https://wordpress.stackexchange.com/" ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 ); 
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L] RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L] RewriteRule . index.php [L] 

移动站点所需的更新

在我看来,为了将我的网站移动到 /blogs ,我会:

mysql> update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/'); select blog_id, domain, path from wp_blogs where blog_id < 3; +---------+-------------+--------------+ | blog_id | domain | path | +---------+-------------+--------------+ | 1 | root.com | /blogs/ | | 2 | root.com | /blogs/matt/ | +---------+-------------+--------------+ 
update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/'); select * from wp_site; +----+-------------+------------+ | id | domain | path | +----+-------------+------------+ | 1 | root.com | /blogs/ | +----+-------------+------------+ 
+-------------+--------------------------------+ | option_name | option_value | +-------------+--------------------------------+ | home | http://root.com/blogs/matt/ | | siteurl | http://root.com/blogs/matt/ | +-------------+--------------------------------+ 
define('WP_ALLOW_MULTISITE', true); define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', false); $base="/blogs/"; define( 'DOMAIN_CURRENT_SITE', 'root.com' ); define( 'PATH_CURRENT_SITE', '/blogs/' ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 ); 

笔记: 我不清楚这一步是如何适当更新的

我发现模糊的“适当更新 .htaccess”说明,但不是具体说明。 更新 RewriteBase? 当我将 root.com 移动到 root.com/blogs 时,我更新 .htaccess 中的哪些行?

上述过程中缺少的是在帖子中找到的路径。 在我进行了更基本的更新之后,我的建议是为此使用搜索和替换工具; 还是我错了?

更新 bungeshea 建议,是的,我将 RewriteBase 指向“博客”子目录,即

RewriteBase /Blogs 

最后,如果您不知道 http://interconnectit.com/products/search-and-replace-for-wordpress-databases/,您应该知道。 太棒了。

原文链接:https://www.wordpresshy.com/388292

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享