Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
multisite WordPress

Cómo cambiar WordPress Multisite de subdominios a subdirectorios ó viceversa

Si alguna vez has instalado WordPress Multisite sabrás que lo primero que te pide es que tomes una decisión: subdominios o subdirectorios.

multisite subdominios subdirectorios

Por favor, elige si quieres que los sitios de tu red WordPress usen subdominios o subdirectorios. No podrás cambiar esto después.

La decisión es importante, y a partir de aquí debes seguir unos pasos parecidos pero diferentes en función de lo que hayas elegido.

Lo cierto es que una vez tomada la decisión es para siempre, WordPress no te permite revertir este paso. Pero como la vida da muchas vueltas quizá el día de mañana puedas encontrarte en la necesidad de cambiar de modelo y WordPress no te permite hacerlo de forma nativa.

 

¿Se puede hacer algo?

La respuesta es sí. De hecho en estas vueltas que da la vida que comentaba anteriormente, personalmente me ha tocado hacerlo en un par de ocasiones.

Podemos cambiar WordPress multisite de subdominios a subcarpetas y viceversa, pero requerirá unas acciones delicadas, por lo tanto es de vital importancia hacer un backup de nuestra base de datos y de los archivos wp-config.php .htaccess, por si cometemos algún error en alguno de los pasos que comentaremos a continuación. No hagáis nunca esto en producción.

Vamos a ver cómo haríamos para cambiar de una estructura multisite de subdominios a subcarpetas, es decir, pasar de http://sitio1.midominio.com/ a http://midominio.com/sitio1/.

 

Primer paso

En nuestro archivo de configuración wp-config.php buscaremos la línea:

y la sustituimos por la siguiente:

Guarda los cambios

 

Segundo paso

Nos vamos al archivo .htaccess y buscamos las reglas que están entre #BEGIN WordPress y #END WordPress. Tendremos esto:

y lo sustituiremos por:

Guardamos los cambios

 

Tercer Paso

Accedemos a la base de datos y buscamos la tabla wp_blogs. Nos encontraremos algo parecido a esto:
multisite subdominios

Como nuestra intención es pasar a subcarpetas, deberemos establecer a mano todos los sitios de nuestro multisite con el dominio principal en el campo domain de la tabla wp_blogs. Y en el campo path pondremos el nombre de lo que antes era nuestro subdominio. Esta tabla quedaría de la siguiente forma:

multisite subcarpetas

Si tenemos pocos sitios es una labor que podemos hacer rápidamente a mano. Si tienes cientos o miles de sitios quizá te convenga desarrollarte un pequeño script para automatizar esta tarea.

 

Cuarto paso

Como sabrás, WordPress almacena todos sus enlaces de forma absoluta, por lo tanto es necesario hacer un reemplazo de todas las URLs de todos nuestros sitios. Para esta labor es necesario utilizar WP-CLI o el script de Search & Replace. NUNCA de manera manual o haciendo UPDATES directamente a la base de datos, porque es muy probable que tengamos información serializada que podamos perder.

multisite search replace

Tendremos que hacer en reemplazo de URLs de esta forma para todos los sitios que tengamos en nuestro multisite.

 

Quinto paso

Comprobar que todo está funcionando correctamente

 

Viceversa, de subcarpetas a subdominios

En el caso de que queramos pasar un multisite de subcarpetas a subdominios el proceso es exactamente igual, pero a la inversa:

  • Por seguridad copia de la base de datos y de los ficheros wp-config.php y .htaccess
  • Definir en wp-config.php el SUBDOMAIN_INSTALL a true
  • Cambiar las reglas en el htaccess por las de subdominios. (más info aquí)
  • Cambiar en todos los sitios la columna domain de la tabla wp_blogs estableciendo los subdominios de cada site. Dejaremos el campo path simplemente con la barra /
  • A través del script Search & Replace ó WP-CLI reemplazaremos todas las URLs del tipo midominio.com/sitio1 por sitio1.midominio.com
  • Comprobaremos que todo está funcionando correctamente

 

Puede que también te interese

Sácale partido al personalizador de WordPress
Sácale partido al personalizador de WordPress
Con este título he tenido el honor y el privilegio de participar como ponente en la WordCamp Santander 2016. El personalizador de WordPress apareció en…
Cómo añadir un enlace para los ajustes en el listado de plugins
Cómo añadir un enlace para los ajustes en el listado de plugins
Si estas desarrollando un plugin o vas a desarrollarlo, puede resultarte de utilidad saber cómo añadir un enlace para los ajustes de tu plugin en el…
Cómo crear un formulario de registro personalizado en WordPress
Cómo crear un formulario de registro personalizado en WordPress
En entradas anteriores hemos visto cómo crear formularios de log-in / log-out personalizados, y cómo agregar campos personalizados al perfil de usuario de WordPress tanto…
Mejora la puntuación de Google PageSpeed Insights: Reducir el tiempo de respuesta del servidor
Mejora la puntuación de Google PageSpeed Insights: Reducir el tiempo de respuesta del servidor
1. Optimizar imágenes 2. Minificar CSS y JS 3. Especificar caché de navegador 4. Habilita la compresión 5. Reducir el tiempo de respuesta del servidor…




  • Encarnación Perla del Sur

    hola.. el funcionamiento de wp multisite es mucho más rápido que usando varios sitios instalados “comunmente” osea una instalación wp para cada dominio?.. saludos

    • La respuesta es “depende”. Cada proyecto es un mundo diferente y hay que ver los pros y contras en cada caso de manera particular