먼저이 프로세스에 대한 여러 게시물을 읽었습니다 . 그러나 여러 가지 이유로 인해 추상적 인 예제가 없거나 너무 추상적 인 프로세스로 인해 프로세스를 구현하거나 문제를 해결하기가 어렵습니다. 그리고 "언제나 할 수없는"게시물이 거의 있으며, "항상 3.5로, 지금 할 수 있습니다"라는 경고가 뒤 따릅니다.
개요:
root.com에서 root / blogs로 워드 프레스 멀티 사이트 (WPMS)를 옮기는 방법?
이 예에서는 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 );
참고 : 이 단계가 어떻게 적절하게 업데이트되는지 확실하지 않습니다.
.htaccess
모호한 "update.htaccess를 적절하게 업데이트"지침을 찾았지만 구체적인 내용은 알 수 없습니다. RewriteBase를 업데이트 하시겠습니까? root.com을 root.com/blogs로 옮길 때 .htaccess에서 어떤 행을 업데이트합니까?
위 프로세스에서 누락 된 부분은 게시물에서 찾은 경로입니다. 내 진실은이 기본적인 업데이트를 한 후에 검색 및 바꾸기 도구를 사용해야합니다. 아니면 내가 틀렸어?
업데이트 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);