En primer lugar, he leer un número de publicaciones en este proceso. Sin embargo, por varias razones, el proceso sigue siendo difícil de implementar o solucionar por falta de ejemplos abstractos, o quizás demasiado abstracto. Y hay algunas publicaciones "no puedo hacer", casi siempre seguidas de "con 3.5, ahora puedes" advertencias, por lo que si una puede permanecer ambigua, aunque sin duda no es trivial.
Resumen:
¿Cómo mover un multisitio (WPMS) de wordpress desde root.com a root / blogs?
Para este ejemplo, estamos moviendo un WPMS de "root.com" a "root.com/blogs"
Entiendo que necesito actualizar las rutas en la base de datos y wp-config.php de manera apropiada. Parece que también tengo que actualizar .htaccess? También estoy al tanto del problema de la serialización con las actualizaciones de búsqueda / reemplazo y consultas de mysql.
Tengo un WPMS que he actualizado a 3.5. He encontrado las siguientes tablas con información de dominio y ruta
Configuración de trabajo existente antes de mover al subdirectorio
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. El blog_id corresponde a las tablas de opciones wp _ # _ que contienen:
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. En mi wp-config.php tengo las siguientes líneas específicas de 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, en mi .htaccess , tengo:
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]
Actualizaciones necesarias para mover el sitio
Me parece que para mover mi sitio a los / blogs, yo:
1. Actualizar wp_blogs a
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. Actualizar wp_site a
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 _ # _ opciones
+-------------+--------------------------------+
| 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: No tengo claro cómo se actualiza este paso apropiadamente
5. .htaccess
Encontré instrucciones vagas de "actualización .htaccess apropiadamente", pero no específicas. Actualizar RewriteBase? ¿Qué líneas de .htaccess actualizo cuando muevo root.com a root.com/blogs?
Faltan en el proceso anterior las rutas encontradas en las publicaciones. Mis druthers deben usar la herramienta de búsqueda y reemplazo para eso, después de haber hecho estas actualizaciones más fundamentales; o me equivoco?
Actualizar bungeshea sugiere que, sí, dirijo RewriteBase a los "blogs "subdirectorio, es decir,
RewriteBase /Blogs
Finalmente, si no sabe acerca de enlace debería hacerlo. Es excelente.