Soporte » Multisitio » Crear una red multisite de WordPress con todos los sites en el mismo nivel

  • mikem33

    (@mikem33)


    ¡Hola a todos!
    Estoy intentando crear un multisite de WordPress a partir de un sitio ya creado, pongamos por ejemplo el dominio: example.com.
    La cuestión es que me gustaría que todos los sites estuviesen en subcarpetas y en el mismo nivel, es decir: example.com/principal, example.com/sitio1 y así. Mi idea era la de poner WordPress en su propia carpeta, llamada por ejemplo «wordpress» y crear sitios en subcarpetas. El dominio principal no quiero que esté con WordPress. Seguí este tutorial para meter los archivos de WordPress en su propia carpeta, pero solo contempla la posibilidad de que el sitio principal esté en la raíz del sitio.

    Para conseguir que esto funcionase, se me ocurrió crear una carpeta en la raíz con el nombre que deseaba (en este caso, «principal») y meter ahí el index.php y el .htaccess correspondientes.
    Hasta aquí todo bien, el problema viene cuando creo un segundo sitio. Después de habilitar el multisite y colocar este código en wp-config.php:

    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false);
    define('DOMAIN_CURRENT_SITE', 'example.com');
    define('PATH_CURRENT_SITE', '/principal/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);

    El backend se vuelve inaccesible. Concretamente me da un error de conexión a base de datos a pesar de que el sitio es accesible en el frontend.
    ¿Alguan idea de como solucionar esto?

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • kallookoo

    (@kallookoo)

    Por lo que comentas tienes mal configurado el WordPress.
    Cuando lo movistes a una subcarpeta comprobastes que funcionaba bien?
    Despues de activar el multisite añadistes el codigo php en el wp-config.php pero no comentas si tambien cambiastes el contenido en el .htaccess en el caso de usar apache u otro codigo cuando no es apache?

    Para utilizar el wordpress dentro de un subcarpeta del dominio tienes que tener todos los archivos en esa carpeta y no solo en index.php, luego lo configuras normalmente y como el wordpress detecta que usas una subcarpeta cuando activas el multisite solo te permite usas carpeta para las sites.
    Esto ultimo te lo comento porque dices que movistes solo el index.php.
    Vamos que desde un inicio lo tenias mal.
    Si es nuevo y no tienes contenido lo mas rapido seria eliminar la base de datos (solo las tablas) e instalar el WordPress correctamente, moviendo los archivos a su correspondiente carpeta en el caso que sea como lo quieres.

    Ahora, si quieres que todas las sites tengan el mismo formato no podras ya que siempre la principal sera parte de la url.
    Ejemplo:

    http://dominio/principal/
    http://dominio/principal/one

    o

    http:dominio
    http:dominio/one

    Una opcion es tener un WordPress por cada site, con lo que conlleva mas mantenimiento al ser x WordPres por x site.
    http://dominio/principal/
    http://dominio/one/

    Yo por ejemplo para trabajar en local y no tener varios WordPress lo que hago es un enlace simbolico en la raiz por cada web y he modificado el wp-config.php para cambiar el nombre de la DB segun el server.

    
    $database = preg_replace( '/([^\.]+\.)?([^\.]+)(\.[^\.]+)/', '$2', $_SERVER['SERVER_NAME'] );
    define( 'DB_NAME', $database );
    

    Pero uso el mismo nombre para el WordPress que para la DB, pero podrias adaptarlo, aunque te aviso que yo nunca lo he probado en produccion.

    Iniciador del debate mikem33

    (@mikem33)

    Hola @kallookoo. Muchas gracias por tu respuesta 🙂

    Antes de activar el multisite y de haber movido WP a una carpeta funciona correctamente, es cuando activo el multisite que falla. En el primer post indico que lo de utilizar WordPress metido en su propia carpeta funciona siempre que el sitio principal sea en la raíz (example.com) y los subsitios tengan carpetas, de hecho tengo un sitio en producción de ese modo.

    En este caso, no obstante, me gustaría tener todos los sitios al mismo nivel y por eso decidí crear una carpeta con el nombre del que quiero que sea el sitio principal (example.com/principal) y ahí muevo el index.php y el .htaccess (este index.php es el index.php que hay en los archivos de WordPress raíz, y al que se le cambia esta línea require( dirname( __FILE__ ) . '/wp-blog-header.php' ) por esta require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' ), siendo ‘wordpress’ el nombre de la carpeta de WordPress.

    Lo de tener un WordPress por cada site sería la solución fácil pero habría que mantener cada uno de los sitios, tal como dices, y la idea es utilizar el mismo theme para todos los sitios por lo que si se hace un cambio de código en el theme se debería duplicar dicho cambio.

    La solución que se me ocurre es que el sitio principal, estuviese en el dominio principal (example.com) y fuese un WordPress vacío, utilizado solamente para poder crear subsitios, pero preferiría tener una solución más limpia sin hacer esta triquiñuela.

    Muchas gracias de nuevo.
    Saludos.

    • Esta respuesta fue modificada hace 1 mes por mikem33.
    kallookoo

    (@kallookoo)

    Hola @mikem33

    Por lo que yo se, no podras hacerlo tal y como esta hecho el propio WordPress.
    Como te comente antes la site principal siempre sera o el dominio o dominio/wordpress.

    La solucion que tu comentas seria una alternativa bastante aceptable, creas el mustisite y añades x subdominios siendo el primero el principal y para evitar que se visualice en el front hacer un redirect del dominio al primer subdominio.

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.