第一に、私はこのプロセスに関する 読み取りいくつかの 投稿を持っています。ただし、さまざまな理由から、抽象化された例がない、または抽象化されすぎているために、プロセスの実装やトラブルシューティングが困難なままです。そして「できない」投稿がいくつかありますが、ほとんどの場合「with 3.5」の後に「警告」ができます。
どのようにワードプレスマルチサイト(WPMS)をroot.comからroot/blogsに移動するのですか?
この例では、WPMSを "root.com"から "root.com/blogs"に移動しています。
データベースとwp-config.phpのパスを適切に更新する必要があることを私は理解しています。 .htaccessも更新する必要があるかもしれませんか。私はまた、検索/置換とMySQLクエリの更新に関するシリアル化の問題を認識しています。
3.5にアップデートしたWPMSがあります。ドメインとパスの情報を含む次の表を見つけました
select blog_id, domain, path from wp_blogs;
+---------+-------------+--------+
| blog_id | domain | path |
+---------+-------------+--------+
| 1 | root.com | / |
| 2 | root.com | /matt/ |
+---------+-------------+--------+
select * in wp_site;
+----+-------------+------+
| id | domain | path |
+----+-------------+------+
| 1 | root.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 = '/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/' );
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 );
注意: このステップがどのように適切に更新されるのかはっきりしない
私は曖昧な "update .htaccess適切に"という指示を見つけましたが、具体的ではありません。 RewriteBaseを更新しますか? root.comをroot.com/blogsに移動したときに、どの.htaccessの行が更新されますか?
上記のプロセスから欠けているのは、投稿に見つかったパスです。私がより根本的な更新をした後、私の指導者はそのために検索と置換ツールを使うことです。それとも私は間違っていますか?
更新bungeshea は、そう、私はRewriteBaseを "blogs"サブディレクトリを指すことを示唆しています。
RewriteBase /Blogs
最後に、あなたが http://interconnectit.com/products/search-and-replace-for-wordpress-databases/について知らないのであれば /すべきです。それは素晴らしいです。
私はそれが古いことを知っていますが、私はそれを修正しました!サブフォルダにWP MUをインストールしました。 htaccess
:
RewriteEngine On
RewriteBase /YOUR_SUBFOLDER
RewriteRule ^index\.php$ - [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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule ^(.*\.php)$ YOUR_SUBFOLDER/$1 [L]
RewriteRule . index.php [L]
wp-config.php
:
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'localhost'); // or your Host
define('PATH_CURRENT_SITE', '');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
データベースでこれを変更します。
wp_site
domain: localhost (OR your domain but no subdirectory!)
path: /
wp_blogs
domain: localhost (OR your domain but no subdirectory in each blog_id!)
path: /
wp_sitemeta
siteurl: http://localhost/YOUR_SUBFOLDER (replace localhost with your Host)
自分の問題を解決したかのように私には見えます - ちょうどあなたのステップ1〜4に従ってください、そしてステップ5のために.htaccess
のRewriteBase
を更新してください。投稿内のパスを更新するには、 Interconnect ITの滅菌検索と置換 ツールを使用するのが好きです。
さて、これが私がしたことで、これはうまくいった。サブフォルダはありません。サイトは以前にサブドメインに構成されていました。
最初にバックアップ!
wp-config.php(このブロックをあなたのファイルのブロックで置き換えてください)
define('WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'no-www-in-sitename.com'); // your Host
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
.htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
今SQL DBに:
1)各wp_(site#)_ tablesuffixについてoptionsテーブルに行き、siteurlとhomeをhttp://www.sitename.com/blogname
に変更します。
2)各blog_idのwp_blogsは、ドメインをblogname.domain.com
からdomain.com
に、そしてパスを/blogname/
に変更します。
3)インストールが同じ場所にある場合は、wp_options siteurl&home、またはwp_siteまたはwp_sitemetaのセルを変更する必要はありません。
完了したら、(スーパーユーザー管理パネルの)設定>パーマリンクに行き、保存をクリックしてください。
ほら!
これが私の最初の回答ですので、ご注意ください! :)
私DIDには、変換するサブドメインに既にあるブログはありません。しかし、古いブログであったため、私は戦わなければなりませんでしたし、サブディレクトリブログを作成することもできず、WPがコードを提供するまでに[DB]に変更を加えることを恐れました。
これが2018年4月に私のために働いたものです... hot_barbaraのwp-configを使用し、彼らからも.htaccessを使用しました。
したがって、サブフォルダーを探してはいけません-私はしませんでした!
しかし、SQL DBでは、これは私の場合に起こったことです-それはすべてすでにこのようだったので、変更を加えませんでした:
wp_blogsドメイン:xyzabc.comパス:/
wp_sitemeta siteurl:h ** ps://xyzabc.com/
私が理解しているように、設定に末尾のスラッシュが含まれている場合は、末尾のスラッシュを使用します。
このコードであなたのwp-config.php
を書き換えてください
define('SUBDOMAIN_INSTALL', false);
define('SUBDOMAIN_INSTALL', true);
の代わりに
そして後藤:
http://www.website.com/wp-admin/network/setup.php
その後:
/var/www/vhosts/website.com/の.htaccessファイルに、他のWordPressの規則を置き換えて、以下を追加します。
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
それでおしまい。
サブディレクトリを持つ新しいサイトを作成する