まず、このプロセスに関する多くの投稿を読みまし た。ただし、さまざまな理由により、抽象化された例でさえ、または抽象化されすぎていても、プロセスを実装またはトラブルシューティングするのは困難なままです。そして、いくつかの「できない」投稿があり、ほぼ常に「3.5で、今できる」という警告があります。
概要:
ワードプレスマルチサイト(WPMS)をroot.comからroot / blogsに移動する方法は?
この例では、WPMSを「root.com」から「root.com/blogs」に移動します
データベースとwp-config.phpのパスを適切に更新する必要があることを理解しています。.htaccessも更新する必要があるようです。また、検索/置換およびmysqlクエリの更新に伴うシリアル化の問題も認識しています。
3.5に更新したWPMSがあります。ドメインとパス情報を含む次のテーブルを見つけました
サブディレクトリに移動する前の既存の作業構成
1. wp_blogs
select blog_id, domain, path from wp_blogs;
+---------+-------------+--------+
| blog_id | domain | path |
+---------+-------------+--------+
| 1 | root.com | / |
| 2 | root.com | /matt/ |
+---------+-------------+--------+
2. wp_site
select * in wp_site;
+----+-------------+------+
| id | domain | path |
+----+-------------+------+
| 1 | root.com | / |
+----+-------------+------+
3. blog_idは、次を含むwp _#_ optionsテーブルに対応します。
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/ |
+-------------+--------------------------+
4. wp-config.phpには、次のWPMS固有の行があります。
define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
5.最後に、私の.htaccessには次のものがあります。
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に移動するには、次のようにします。
1. wp_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/ |
+---------+-------------+--------------+
2. wp_siteを更新します
update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select * from wp_site;
+----+-------------+------------+
| id | domain | path |
+----+-------------+------------+
| 1 | root.com | /blogs/ |
+----+-------------+------------+
3. wp _#_ options
+-------------+--------------------------------+
| option_name | option_value |
+-------------+--------------------------------+
| home | http://root.com/blogs/matt/ |
| siteurl | http://root.com/blogs/matt/ |
+-------------+--------------------------------+
4. wp_config.php
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 );
注:この手順がどのように適切に更新されるか明確ではありません
5. .htaccess
「.htaccessを適切に更新する」というあいまいな指示を見つけましたが、詳細は指示しませんでした。RewriteBaseを更新しますか?root.comをroot.com/blogsに移動すると、.htaccessのどの行を更新しますか?
上記のプロセスから欠落しているのは、投稿で見つかったパスです。もっと基本的な更新を行った後、私の代わりに検索と置換ツールを使用します。または私は間違っていますか?
Update bungesheaは、はい、RewriteBaseを "blogs"サブディレクトリにポイントすることを提案しています。つまり、
RewriteBase /Blogs
最後に、http://interconnectit.com/products/search-and-replace-for-wordpress-databases/について知らない場合は、すべきです。素晴らしいです。
update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
というべきであるupdate wp_blogs set path=concat('/blogs',path);