Cookies en red Multisite donde los sitios tienen su propio nombre de dominio

13 mar 2017, 07:09:35
Vistas: 31.9K
Votos: 21

Decidí integrar varios sitios WordPress independientes en una única instalación Multisite.

Creé una nueva instalación Multisite con subdominios, creé un sitio de red MU con URL de subdominio, y exporté el contenido del sitio independiente original, luego importé ese contenido al sitio MU del subdominio. Después eliminé el sitio independiente original desde cPanel, y configuré el nombre de dominio del sitio MU al nombre de dominio original.

El sitio principal carga bien ahora en su nombre de dominio original, pero cuando intento iniciar sesión en el sitio del subdominio en site.example.com/wp-admin/ (usando las credenciales del administrador de red del nuevo multisite), recibo un error:

ERROR: Las cookies están bloqueadas o no son compatibles con tu navegador. Debes habilitar las cookies para usar WordPress.

Pero las cookies están habilitadas en Chrome.

Intenté agregar lo siguiente a wp-config.php:

define('COOKIE_DOMAIN', false);

...pero el problema persiste.

El mismo problema ocurre si uso WP Migrate DB Pro para importar un sitio independiente a un sitio de subdominio MU, luego elimino el sitio independiente desde cPanel, y después configuro el dominio del sitio de subdominio MU para que sea el dominio del sitio independiente original... el frontend del sitio carga bien, pero simplemente no puedo iniciar sesión en el administrador de WP.

7
Comentarios

¿Has visto esta respuesta ¿Cómo configurar WordPress Multisite en múltiples dominios sin plugin?

bueltge bueltge
16 mar 2017 15:41:45

Gracias @bueltge, intenté agregar define('COOKIE_DOMAIN', false); pero iniciar sesión en un sub-sitio con su propio dominio no funciona - vuelve a la misma pantalla de inicio de sesión.

Steve Steve
17 mar 2017 20:23:33

@Steve deberías intentar específicamente lo que indica la respuesta y establecerlo como una cadena vacía, es decir define('COOKIE_DOMAIN', '');. El booleano false puede o no tener el mismo significado que una cadena vacía '', dependiendo de la aplicación.

bosco bosco
22 mar 2017 01:42:22

¿Por MU te refieres a que estás usando un plugin de mapeo de dominios? Gracias.

Greeso Greeso
23 mar 2017 06:25:29

No @Greeso, estoy usando la funcionalidad incorporada de URL del sitio.

Steve Steve
23 mar 2017 07:22:26

Hola, no tengo más que intuición para respaldar esto, pero ¿no parece que establecer el dominio de cookies como '' o false es una muy mala idea para la seguridad?

squarecandy squarecandy
16 dic 2018 00:19:13

Ve a phpmyadmin. En la tabla wp_option, los valores de siteurl y home deben ser los mismos que el nombre de tu dominio.

bwise bwise
29 ene 2019 22:33:56
Mostrar los 2 comentarios restantes
Todas las respuestas a la pregunta 15
5
39

Primero limpia la caché de tu navegador (incluyendo cookies) y la caché de tu servidor (por ejemplo, plugins de caché). Luego configura lo siguiente en tu archivo wp-config.php:

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');

También puedes revisar la respuesta desde AQUÍ:

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

Si aún falla, entonces lee esta respuesta o contacta al soporte de tu servidor. Puede haber un problema de configuración en el servidor.

23 mar 2017 12:04:04
Comentarios

Hola Scott. Un problema similar ha surgido en otro sitio MU. He agregado las constantes mencionadas anteriormente al wp-config.php, pero en este otro sitio MU, childsitedomain.com/wp-login.php produce el error The constant "COOKIE_DOMAIN" is defined (probably in wp-config.php). Please remove or comment out that define() line. ¿Alguna idea sobre cómo abordar esta situación?

Steve Steve
27 mar 2017 13:53:39

Si comento esa declaración, recibo el error después de iniciar sesión en el sitio hijo: ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.

Steve Steve
27 mar 2017 13:56:18

He planteado este problema en una nueva pregunta.

Steve Steve
27 mar 2017 14:03:10

las 4 líneas en la sección superior funcionaron para mí

azote azote
21 jul 2022 18:40:09

Configurar SUBDOMAIN_INSTALL a false me ayudó ahora con WordPress 6.7.1, ya que noté que lo tenías en false comparado con otras respuestas. Anteriormente funcionaba con true, así que no sé si alguna actualización de WordPress cambió algo relacionado con esto.

PatrikN PatrikN
16 dic 2024 14:45:32
0

Utilizando WordPress versión 4.9.4.

Estaba recibiendo el error de cookies y revisé varias opciones de ayuda hasta que finalmente lo solucioné usando partes de la corrección de Scott. (Nota: No realicé ninguna limpieza de caché de cookies).

  1. Eliminé la línea de sunrise.php en wp-config.php (estaba usando mapeo de dominios nativo, así que eliminé los cambios de instalación del plugin MU que había hecho)

  2. Ajusté mi wp-config.php a:

    /* Multisitio */
    
    define('WP_DEBUG', false);
    
    define( 'WP_ALLOW_MULTISITE', true );
    
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', true);
    define('DOMAIN_CURRENT_SITE', 'www.misitio.ejemplo');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
    /* define( ‘COOKIE_DOMAIN’, $_SERVER[ ‘HTTP_HOST’ ] ); */
    
    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIE_DOMAIN', '');
    define('COOKIEPATH', '');
    define('SITECOOKIEPATH', '');
    
    /* ¡Eso es todo, deja de editar! Feliz blogging. */
    
27 mar 2018 22:33:22
1

Finalmente, después de horas, literalmente, de solucionar problemas, pude resolver esto en la instancia de AWS Lightsail Bitnami Multisite Wordpress (WordPress 5.0.4) realizando lo siguiente:

  1. Asegúrate de que el plugin WPMU Domain Mapping esté desactivado
  2. Edita /opt/bitnami/apps/wordpress/htdocs/wp-config.php...

    a. Añade lo siguiente:

     define('ADMIN_COOKIE_PATH', '/');
     define('COOKIE_DOMAIN', '');
     define('COOKIEPATH', '');
     define('SITECOOKIEPATH', '');
    
     /* ¡Eso es todo, deja de editar! Feliz blogging. */
    

    b. Comenta:

    // define('SUNRISE', 'on');
    

Después de estos cambios, el inicio de sesión fue exitoso - sin errores. Gracias por las aportaciones de todos. Si no fuera por eso, todavía estaría rascándome la cabeza.

Encontré la respuesta aquí:

https://docs.bitnami.com/aws/apps/wordpress-multisite/configuration/configure-wordpress-multisite

Esta funcionalidad de mapeo de dominios está incluida en WordPress Multisite desde la versión 4.5. Si estás usando una versión anterior, necesitarás el plugin WordPress MU Domain Mapping.

Así que parece que el plugin WPMU Domain Mapping está innecesariamente incluido en el paquete de AWS Lightsail Bitnami Multisite.

18 mar 2019 20:32:06
Comentarios

¡Gracias por esto! Funcionó para mí sin desactivar el plugin WPMU Domain Mapping. Tampoco encontré SUNRISE en ningún lugar, así que tampoco tuve que comentarlo.

Monarch Wadia Monarch Wadia
20 ago 2019 01:08:39
2

Acabo de terminar de solucionar un problema similar con multisitio en subdominios.

Con:

define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);

El sitio seguía mostrando un error de cookies y en algunos casos al intentar lo sugerido anteriormente.........

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');

Esto causó un error diferente que eliminaba las definiciones que hacían referencia a "COOKIE_DOMAIN" al visitar los subsitios.

Finalmente pude iniciar sesión después de asegurarme de que ambos estuvieran definidos justo encima de la información de la red multisitio

define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIE_DOMAIN', '');

Intenta asegurarte de que ambos estén definidos. Espero que esto ayude.

6 dic 2017 19:16:07
Comentarios

Para aclarar lo anterior, parece funcionar simplemente con define('COOKIE_DOMAIN', '');

Ruben Apolinar Ruben Apolinar
6 dic 2017 19:22:45

Funciona, pero interrumpe la vista previa de entradas... Obtengo: Lo sentimos, no tienes permiso para previsualizar borradores.

Alex Bogias Alex Bogias
7 ene 2021 15:36:14
1

He comentado la línea define('SUNRISE', 'on');

/* define('SUNRISE', 'on'); */
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIE_DOMAIN', '');

Luego, ya no veo el siguiente mensaje de error:

ERROR: Las cookies están bloqueadas o no son compatibles con tu navegador. Debes habilitar las cookies para usar WordPress.

El inicio de sesión también comenzó a funcionar.

23 ene 2018 00:35:35
Comentarios

También se puede omitir la segunda línea, ya que en esencia está siendo sobrescrita por la tercera. :)

jgangso jgangso
17 ago 2022 11:27:25
0

Yo también estaba teniendo este problema y encontré muchas soluciones como las mencionadas aquí, pero no funcionaron.

Lo que sí funcionó fue simplemente agregar lo siguiente a la configuración multisite en wp-config:

define('COOKIE_DOMAIN', false);

para que la sección en wp-config quede así:

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

Lo publico aquí para que otros puedan encontrarlo y pasen menos tiempo golpeándose la cabeza contra el escritorio de lo que yo lo hice.

9 may 2018 01:05:49
1

Curiosamente funcionó para mí (en más de un multisitio) establecer SUBDOMAIN_INSTALL en false. Para ser honesto, no había tenido tiempo de investigar más a fondo por qué...

define('SUBDOMAIN_INSTALL', false);

20 ago 2018 12:47:01
Comentarios

Lo mismo me ocurre ahora con WordPress 6.7.1. Anteriormente funcionaba con true, así que no sé si alguna actualización de WordPress cambió algo relacionado con esto.

PatrikN PatrikN
16 dic 2024 14:47:31
0

No sé ustedes, pero a mí me ayudó sorprendentemente mucho cambiar esto:

define( 'COOKIEDOMAIN', '' );

por esto:

define( 'COOKIE_DOMAIN', '' );

Y sí, todavía me atrevo a considerarme un desarrollador experimentado de PHP y WordPress. Solo quería compartir que esto nos pasa a todos. :)

17 ago 2022 11:50:40
0
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
//define('DOMAIN_CURRENT_SITE', 'masterdigitalservices.com');
//define('PATH_CURRENT_SITE', '/');
//define('SITE_ID_CURRENT_SITE', 1);
//define('BLOG_ID_CURRENT_SITE', 1);

Aquí está mi nuevo wp-config. Parece que estaba configurado para un sitio específico y no permitía que otros dominios funcionaran, solo subdominios. Excelentes respuestas aquí.

31 mar 2018 21:50:16
0

Yo también estaba teniendo este problema, y nada de lo que hice ayudó. Lo probé en Microsoft Edge, y no tuve el error.

Así que en mi caso al menos, era solo Google Chrome el que causaba el problema.

30 abr 2018 23:43:32
0

ESTO LO SOLUCIONÓ PARA MÍ No había configurado WordPress completamente para el nuevo nombre de dominio. Había creado mi sitio subdominio.dominio.com Luego quería quedarme como nuevodominio.com en lugar de subdominio.dominio.com Esto requería:

  1. En WordPress red > administrador > sitio, cambiar el sitio al nuevo nombre (lo cual ya había hecho, el sitio estaba funcionando)
  2. En WordPress red > administrador > ajustes > dominios, agregar el nuevo nombre al ID del sitio y marcar sí para dominio primario (para indicar que este nombre es el principal). Para encontrar el ID del sitio, puedes pasar el cursor sobre red > administrador > sitio que mostrará en qué ID de sitio estás trabajando. Espero que esto ayude a cualquiera que recibía el mensaje de que las cookies están bloqueadas o no son compatibles al intentar iniciar sesión. Saludos, SamTapsell
17 oct 2018 16:04:22
0

Pude resolver el problema después de agregar lo siguiente en wp-config.php. Referencia

define( 'COOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'home' ) . '/' ) );
define( 'SITECOOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'siteurl' ) . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
define( 'PLUGINS_COOKIE_PATH', preg_replace( '|https?://[^/]+|i', '', WP_PLUGIN_URL ) );
28 dic 2018 13:49:55
0

Resolví el problema con esto:

Cambiar la configuración de DOMAIN_CURRENT_SITE en wp-config.php a:

 define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);

Así que mi configuración es esta:

define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Luego pude iniciar sesión en todos los sitios multisitio en URLs como web1.ejemplo.com/wp-admin o web2.ejemplo.com/wp-admin.

8 abr 2020 19:14:01
0

Esto es lo que usamos en SlickStack para instalaciones Multisite... funciona tanto para redes de subdominios como para nombres de dominio personalizados:

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
define('NOBLOGREDIRECT', 'https://ejemplo.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Y luego:

define('COOKIE_DOMAIN', false);
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
define('ADMIN_COOKIE_PATH', '/');
24 oct 2022 11:32:10
1
-1

Por favor, intenta agregar lo siguiente a tu archivo wp-config.php

También elimina todas las cookies de tu navegador antes de probar

define( 'COOKIE_DOMAIN', $_SERVER[ 'HTTP_HOST' ] );
16 mar 2017 15:38:04
Comentarios

Cuando hice ese cambio, no pude iniciar sesión en ningún sitio web, incluido el sitio principal.

Steve Steve
17 mar 2017 20:19:43