Pertama, saya sudah membaca sejumlah posting pada proses ini. Namun, karena berbagai alasan, prosesnya tetap sulit untuk diterapkan atau dipecahkan karena tidak ada contoh yang bahkan abstrak, atau mungkin terlalu abstrak. Dan ada beberapa posting "tidak bisa melakukan", hampir selalu ditindaklanjuti dengan "dengan 3,5, Anda sekarang dapat" peringatan, jadi apakah seseorang dapat tetap ambigu, meskipun tidak diragukan lagi non-sepele.
Ringkasan:
Bagaimana cara memindahkan wordpress multisite (WPMS) dari root.com ke root / blog?
Untuk contoh ini, kami memindahkan WPMS dari "root.com" ke "root.com/blogs"
Saya mengerti bahwa saya perlu memperbarui path dalam database dan wp-config.php dengan tepat. Sepertinya saya mungkin juga harus memperbarui .htaccess? Saya juga mengetahui masalah serialisasi dengan pencarian / penggantian dan pembaruan permintaan mysql.
Saya memiliki WPMS yang telah saya perbarui menjadi 3.5. Saya telah menemukan tabel berikut dengan info domain dan jalur
Konfigurasi kerja yang ada sebelum pindah ke subdirektori
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 sesuai dengan tabel opsi wp _ # _ yang berisi:
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. Di wp-config.php saya memiliki baris khusus WPMS berikut:
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. Terakhir, dalam .htaccess saya , saya memiliki:
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]
Diperlukan pembaruan untuk memindahkan situs
Tampaknya bagi saya untuk memindahkan situs saya ke blog, saya akan:
1. Perbarui wp_blogs ke
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. Perbarui wp_site ke
update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select * from wp_site;
+----+-------------+------------+
| id | domain | path |
+----+-------------+------------+
| 1 | root.com | /blogs/ |
+----+-------------+------------+
3. opsi wp _ # _
+-------------+--------------------------------+
| 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 );
Catatan: Saya tidak jelas bagaimana langkah ini diperbarui dengan tepat
5. .htaccess
Saya menemukan instruksi "perbarui .htaccess dengan tepat", tetapi tidak spesifik. Perbarui RewriteBase? Baris mana dalam .htaccess yang harus saya perbarui ketika saya memindahkan root.com ke root.com/blogs?
Yang hilang dari proses di atas adalah jalur yang ditemukan di pos. Pemabuk saya akan menggunakan alat pencarian dan ganti untuk itu, setelah saya membuat pembaruan yang lebih mendasar ini; atau saya salah?
Perbarui bungeshea menunjukkan bahwa, ya, saya arahkan RewriteBase ke subdirektori "blog", yaitu,
RewriteBase /Blogs
Akhirnya, jika Anda tidak tahu tentang http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ Anda harus. Ini luar biasa.
update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
lebih tepatnyaupdate wp_blogs set path=concat('/blogs',path);