Em primeiro lugar, tenho read um número de posts neste processo. No entanto, por várias razões, o processo continua a ser difícil de implementar ou solucionar problemas por falta de exemplos ainda abstraídos, ou talvez muito abstraído. E há alguns posts "não pode fazer", quase sempre seguidos por "com 3.5, você agora pode" advertências, então se alguém pode permanecer ambíguo, embora sem dúvida não seja trivial.
Resumo:
Como mover um multisite wordpress (WPMS) de root.com para root / blogs?
Para este exemplo, estamos movendo um WPMS de "root.com" para "root.com/blogs"
Eu entendo que preciso atualizar os caminhos no banco de dados e wp-config.php apropriadamente. Parece que eu também tenho que atualizar o .htaccess? Também estou ciente do problema de serialização com as atualizações de consulta search / replace e mysql.
Eu tenho um WPMS que atualizei para o 3.5. Eu encontrei as seguintes tabelas com informações de domínio e caminho
Configuração de trabalho existente antes de passar para o subdiretório
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. O blog_id corresponde às tabelas de opções wp _ # _ que contêm:
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. No meu wp-config.php eu tenho as seguintes linhas específicas do 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. Por último, no meu .htaccess , tenho:
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]
Atualizações necessárias para mover o site
Parece-me que, para mover meu site para os / blogs, gostaria de:
1. Atualize wp_blogs para
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. Atualize wp_site para
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 _ # _ opções
+-------------+--------------------------------+
| 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 );
nota: não estou claro como essa etapa é atualizada adequadamente
5. .htaccess
Eu encontrei instruções vagas de "atualização .htaccess apropriadamente", mas não específicas. Atualizar RewriteBase? Quais linhas em .htaccess eu atualizo quando movo root.com para root.com/blogs?
Faltando o processo acima, os caminhos serão encontrados nas postagens. Meus druthers devem usar a ferramenta de busca e substituição para isso, depois que eu fizer essas atualizações mais fundamentais; ou estou errado?
Atualizar bungeshea sugere que, sim, eu aponte RewriteBase para os "blogs "subdiretório, ou seja,
RewriteBase /Blogs
Finalmente, se você não sabe sobre enlace , você deve. É excelente.