Đầu tiên, tôi đã đọc một số bài viết về quá trình này. Tuy nhiên, vì nhiều lý do, quá trình này vẫn khó thực hiện hoặc khắc phục sự cố do thiếu các ví dụ thậm chí trừu tượng hóa hoặc có thể quá trừu tượng. Và có một vài bài viết "không thể làm", gần như luôn được theo dõi bởi "với 3,5, bây giờ bạn có thể" hãy cẩn thận, vì vậy liệu người ta có thể vẫn mơ hồ, mặc dù không nghi ngờ gì là không tầm thường.
Tóm lược:
Làm cách nào để di chuyển một wordpress multisite (WPMS) từ root.com sang root / blog?
Trong ví dụ này, chúng tôi đang chuyển WPMS từ "root.com" sang "root.com/bloss"
Tôi hiểu rằng tôi cần cập nhật các đường dẫn trong cơ sở dữ liệu và wp-config.php một cách thích hợp. Có vẻ như tôi cũng có thể phải cập nhật .htaccess? Tôi cũng nhận thức được vấn đề tuần tự hóa với các cập nhật truy vấn / tìm kiếm và mysql.
Tôi có một WPMS mà tôi đã cập nhật lên 3.5. Tôi đã tìm thấy các bảng sau với thông tin tên miền và đường dẫn
Cấu hình làm việc hiện có trước khi chuyển sang thư mục con
1. wp_bloss
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 tương ứng với các bảng tùy chọn wp _ # _ có chứa:
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. Trong wp-config.php của tôi, tôi có các dòng dành riêng cho 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. Cuối cùng, trong .htaccess của tôi , tôi có:
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]
Yêu cầu cập nhật để di chuyển trang web
Dường như với tôi rằng để chuyển trang web của tôi đến / blog, tôi sẽ:
1. Cập nhật wp_bloss lên
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. Cập nhật wp_site lên
update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select * from wp_site;
+----+-------------+------------+
| id | domain | path |
+----+-------------+------------+
| 1 | root.com | /blogs/ |
+----+-------------+------------+
3. tùy chọn 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 );
lưu ý: Tôi không rõ làm thế nào bước này được cập nhật một cách thích hợp
5. .acaccess
Tôi tìm thấy hướng dẫn "cập nhật .htaccess thích hợp" mơ hồ, nhưng không cụ thể. Cập nhật RewriteBase? Những dòng nào trong .htaccess để tôi cập nhật khi tôi chuyển root.com sang root.com/bloss?
Thiếu từ quá trình trên sẽ là các đường dẫn được tìm thấy trong bài viết. Công cụ tìm kiếm của tôi là sử dụng công cụ tìm kiếm và thay thế cho điều đó, sau khi tôi thực hiện bản cập nhật cơ bản hơn này; hoặc là tôi sai?
Cập nhật bungeshea gợi ý rằng, vâng, tôi trỏ RewriteBase đến thư mục con "blog", nghĩa là,
RewriteBase /Blogs
Cuối cùng, nếu bạn không biết về http://interconnectit.com/products/search-and-replace-for-wordpress-database/ bạn nên. Nó là tuyệt vời.
update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
nên thayupdate wp_blogs set path=concat('/blogs',path);