Mover un Multisitio WP a un subdirectorio

18

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.

    
pregunta Screenack 21.12.2012 - 20:28

4 respuestas

4

Sé que es viejo pero lo arreglé! Instalé WP MU en una subcarpeta. htaccess :

RewriteEngine On
RewriteBase /YOUR_SUBFOLDER
RewriteRule ^index\.php$ - [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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule ^(.*\.php)$ YOUR_SUBFOLDER/$1 [L]
RewriteRule . index.php [L]

wp-config.php :

define( 'WP_ALLOW_MULTISITE', true ); 
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'localhost'); // or your host
define('PATH_CURRENT_SITE', '');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

y en tu base de datos, modifica esto:

wp_site
domain: localhost (OR your domain but no subdirectory!)
path: /

wp_blogs
domain: localhost (OR your domain but no subdirectory in each blog_id!)
path: /

wp_sitemeta
siteurl: http://localhost/YOUR_SUBFOLDER (replace localhost with your host)
    
respondido por el nicmare 03.06.2015 - 16:06
2

Me parece que has resuelto tu propio problema; solo sigue los pasos 1-4 y, para el paso 5, actualiza RewriteBase en .htaccess . Para actualizar las rutas en las publicaciones, me gusta usar Interconecte la búsqueda y reemplazo esterilizados de TI herramienta.

    
respondido por el shea 28.12.2012 - 08:09
1

Ok, esto es lo que hice y esto funcionó. Sin subcarpeta. El sitio estaba configurado previamente para subdominio.

¡RESPALDA PRIMERO!

wp-config.php (reemplaza este bloque con el bloque en tu archivo)

define('WP_ALLOW_MULTISITE', true ); 
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'no-www-in-sitename.com'); // your host
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

.htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

ahora en la base de datos SQL:

1) para cada wp_ (sitio #) _ tablesuffix vaya a la tabla de opciones y cambie siteurl y al inicio a http://www.sitename.com/blogname

2) wp_blogs para cada blog_id cambia el dominio de blogname.domain.com a domain.com y la ruta a /blogname/

3) no es necesario cambiar wp_options siteurl & Inicio o cualquier celda en wp_site o wp_sitemeta si la instalación está en la misma ubicación.

Una vez que haya terminado, asegúrese de ir a (en el panel de administración del superusuario) > permalinks y haga clic en guardar.

Voila!

    
respondido por el hot_barbara 20.11.2015 - 20:03
0

Esta es mi primera respuesta, ¡así que por favor sea considerado! :)

NO TENÍA un blog que ya estuviera en subdominios para convertir. Pero tuve que pelear porque era un blog antiguo y no me dejaron hacer un blog de subdirectorio y temí que WP hiciera cambios en mi base de datos en el momento en que me dieran los códigos para ingresar.

Esto es lo que me funcionó en abril de 2018, chicos ... Usé wp-config de hot_barbara y usé .htaccess también de ellos.

Por lo tanto, no vayas por una subcarpeta, ¡no lo hice!

SIN EMBARGO, en SQL DB, esto es lo que sucedió en mi caso, todo fue así, así que no hice ningún cambio:

  1. wp_site dominio: xyzabc.com ruta: /

wp_blogs dominio: xyzabc.com ruta: /

wp_sitemeta siteurl: h ** ps: //xyzabc.com/

Usted podría, como entiendo, estar usando una barra inclinada al final si la tuviera en su configuración.

    
respondido por el Ebe 05.05.2018 - 21:16

Lea otras preguntas en las etiquetas