Ya tienes un sitio creado en WordPress y deseas convertir tu instalación en multisitio, pero deseas que cada nueva página se acceda en forma de subdirectorio y ¡oh sorpresa!, WordPress no te lo permite.
Aquí veremos como podemos forzar a que lo haga, pero antes ¡No olvides hacer respaldo de tu sitio!
Primero deberemos dirigirnos a nuestra carpeta wp-config de nuestro sitio web, en donde encontraremos la siguiente linea:
/* That’s all, stop editing! Happy blogging. */
Sobre ella escribiremos las siguientes lineas de código. De esta forma WordPress sabrá que queremos activar el modo multisitio.
/* Multisitio */ define( 'WP_ALLOW_MULTISITE', true );
Para iniciar con la creación de la red de sitios es necesario desactivar todos los plugins.
Es hora de dirigirnos a nuestro escritorio en WordPress en donde podremos encontrar una nueva opción en el apartado de Herramientas llamada Configuración de la red.
Daremos en Instalar, y a continuación nos pedirá modificar el archivo wp-config.php añadiendo las siguientes lineas de código después de la que agregamos anteriormente:
/* Multisitio */ define( 'WP_ALLOW_MULTISITE', true ); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'tudominio.com'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
Para forzar los subdirectorios deberemos cambiar la siguiente linea sustituyendo «true» con «false»:
define('SUBDOMAIN_INSTALL', false);
WordPress nos pedirá reemplazar las reglas del fichero .htaccess con las siguientes:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ $wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L] # END WordPress
Sin embargo, habremos de modificar algunas de estas reglas.
# BEGIN WordPress 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).*) $1 [L] RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L] RewriteRule . index.php [L] # END WordPress
Una vez hayamos concluido, podremos refrescar el escritorio y comprobar que ya es posible crear un nuevo sitio utilizando subdirectorios.