Cookies multisites où les sites du réseau ont leur propre nom de domaine

14

J'ai décidé d'intégrer plusieurs sites Web Wordpress autonomes dans une seule installation multisite.

J'ai créé une toute nouvelle installation multisite avec des sous-répertoires, créé un site réseau MU avec une URL de sous-répertoire et exporté le contenu du site autonome d'origine, puis importé ce contenu dans le site MU du sous-répertoire.

J'ai ensuite supprimé le site autonome d'origine de cPanel et défini le nom de domaine du site MU sur le nom de domaine d'origine.

Le site se charge sur son nom de domaine d'origine, mais lorsque j'essaie de me connecter à domainname.com/wp-admin (en utilisant les informations d'identification de l'administrateur réseau du tout nouveau site multisite), je reçois une erreur:

ERREUR: les cookies sont bloqués ou ne sont pas pris en charge par votre navigateur. Vous devez activer les cookies pour utiliser WordPress.

Les cookies sont activés dans Chrome.

J'ai essayé d'ajouter ce qui suit à wp-config.php:

define('COOKIE_DOMAIN', false);

mais le problème demeure.

Le même problème se produit si j'utilise WP Migrate DB Pro, pour insérer un site Web autonome dans un site de sous-répertoire MU, puis supprimer le site autonome de cPanel, puis définir l'URL du site de sous-répertoire MU comme nom de domaine du site autonome d'origine. Le front-end du site se charge bien, je ne peux tout simplement pas me connecter à l'administrateur.

Aide appréciée.

Steve
la source
Merci @bueltge, a essayé d'ajouter, define('COOKIE_DOMAIN', false);mais la connexion à un sous-site avec son propre domaine ne fonctionne pas - il revient au même écran de connexion.
Steve
@Steve, vous devez essayer spécifiquement ce que dit la réponse et la définir sur une chaîne vide, c'est-à-dire define('COOKIE_DOMAIN', '');. Un booléen falsepeut ou non avoir la même signification qu'une chaîne vide '', selon l'application.
bosco
Par MU, voulez-vous dire que vous utilisez un plugin de mappage de domaine? Merci.
Greeso
Pas de @Greeso, en utilisant la fonctionnalité d'URL du site intégrée.
Steve

Réponses:

22

Premier effacer le cache du navigateur (y compris les cookies) + le cache du serveur des plugins de cache, etc.

Définissez ensuite les éléments suivants dans votre wp-config.phpfichier:

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

Vous pouvez également consulter la réponse ICI :

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

S'il échoue toujours, lisez cette réponse ou contactez le support de votre serveur, il peut y avoir un problème de configuration sur le serveur.

Scott
la source
Salut Scott. Un problème similaire est survenu sur un autre site MU. J'ai ajouté les constantes ci-dessus wp-config.php, mais sur cet autre site MU, childsitedomain.com/wp-login.phpproduit l'erreur. The constant "COOKIE_DOMAIN" is defined (probably in wp-config.php). Please remove or comment out that define() line.Des idées sur la façon de résoudre cette situation?
Steve
Si je commente cette déclaration, je reçois l'erreur après la connexion au site enfant:ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
Steve
J'ai soulevé cette question dans une nouvelle question .
Steve
7

Utilisation de WordPress version 4.9.4.

J'obtenais l'erreur de cookie et j'ai regardé diverses options d'aide et je l'ai finalement résolu en utilisant un mélange de correctifs de Scott:

Remarque: je n'ai pas effacé le cache des cookies

a) Modification de la sunrise.phpligne wp-config.php(j'utilisais le mappage de domaine natif, j'ai donc supprimé les modifications d'installation du plug-in MU que j'avais apportées)

b) A ajusté mon wp-config.phpà

/* Multisite */

define('WP_DEBUG', false);

define( 'WP_ALLOW_MULTISITE', true ); 

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'www.mysite.com.au');
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', '');

/* That's all, stop editing! Happy blogging. */
user140609
la source
3

Enfin, après des heures, littéralement, de dépannage, j'ai pu résoudre ce problème sur l'instance AWS Lightsail Bitnami Multisite Wordpress (WordPress 5.0.4) en effectuant les opérations suivantes:

  1. Assurez-vous que le plug-in de mappage de domaine WPMU est désactivé
  2. Modifiez /opt/bitnami/apps/wordpress/htdocs/wp-config.php ...

    une. Ajoutez ce qui suit:

     define('ADMIN_COOKIE_PATH', '/');
     define('COOKIE_DOMAIN', '');
     define('COOKIEPATH', '');
     define('SITECOOKIEPATH', '');
    
     /* That's all, stop editing! Happy blogging. */
    

    b. Commenter:

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

Après ces modifications, la connexion a réussi - aucune erreur. Merci pour la contribution de tout le monde. Sans cela, je me gratterais encore la tête.

J'ai trouvé la réponse ici:

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

Cette fonctionnalité de mappage de domaine est incluse dans WordPress Multisite depuis la v4.5 . Si vous utilisez une ancienne version, vous aurez besoin du plugin WordPress MU Domain Mapping.

Il semble donc que le plug-in de mappage de domaine WPMU soit inutilement inclus dans le package AWS Lightsail Bitnami Multisite.

George Drew
la source
Merci pour cela! Cela a fonctionné pour moi sans désactiver le plug-in de mappage de domaine WPMU. Je n'ai également trouvé SUNRISE nulle part, donc je n'ai pas eu à commenter cela non plus.
Monarch Wadia
2

Je viens de terminer le dépannage d'un problème similaire avec le sous-domaine multisite.

Avec:

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

Le site affichait toujours une erreur de cookie et, dans certains cas, essayait ce qui a été suggéré ci-dessus .........

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

Cela a provoqué une erreur différente lors de la suppression des définitions faisant référence à "COOKIE_DOMAIN" lors de la visite des sous-sites.

Enfin, j'ai pu me connecter après m'être assuré que les deux étaient définis juste au-dessus des informations du réseau multisite

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

Essayez de vous assurer que ces deux éléments sont définis. J'espère que ça aide.

Ruben Apolinar
la source
Pour clarifier ci-dessus, il semble fonctionner avec juste définir ('COOKIE_DOMAIN', '');
Ruben Apolinar
1

J'ai commenté define ('SUNRISE', 'on');

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

Ensuite, je ne vois pas le message d'erreur ci-dessous:

ERREUR: les cookies sont bloqués ou ne sont pas pris en charge par votre navigateur. Vous devez activer les cookies pour utiliser WordPress.

La connexion a également commencé à fonctionner.

Joone Hur
la source
1

J'avais donc aussi ce problème et je suis tombé sur de nombreuses solutions comme celles mentionnées ici, mais elles n'ont pas fonctionné.

Ce qui a fonctionné était simplement d'ajouter ce qui suit à la configuration multisite dans wp-config:

define('COOKIE_DOMAIN', false);

de sorte que la section dans wp-config ressemble à ceci:

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

poster ici pour que d'autres puissent le trouver et passer moins de temps à se cogner la tête contre leur bureau que moi.

ronaut
la source
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);

Voici ma nouvelle wp-config. On dirait qu'il a été codé en dur pour être un site spécifique, et ne permettait pas aux autres domaines de fonctionner - uniquement aux sous-domaines. Excellentes réponses ici.

Andy
la source
0

J'avais aussi ce problème, et rien de ce que j'ai fait n'a aidé. Je l'ai essayé dans Microsoft Edge et je n'ai pas eu l'erreur.

Donc dans mon cas au moins, c'est juste Google Chrome qui a causé le problème.

serpent
la source
0

Étrangement, cela a fonctionné pour moi (sur plusieurs sites multisites) de définir SUBDOMAIN_INSTALL sur false. Pour être honnête, je n'avais pas eu le temps d'étudier plus avant pourquoi ...

define('SUBDOMAIN_INSTALL', false);

Martin de WP-Stars.com
la source
0

CE CORRECTION POUR MOI Je n'avais pas configuré WordPress complètement pour le nouveau nom de domaine. J'avais créé mon site subdomain.domain.com je voulais alors rester comme newdomain.com sur subdomain.domain.com Cette nécessaire

  1. Réseau WordPress > admin> site , changer de site en un nouveau nom (ce que j'avais déjà fait, le site fonctionnait)
  2. Réseau WordPress > admin> paramètres> domaines , ajoutez un nouveau nom à l'ID du site et cochez oui pour le domaine principal (pour indiquer que ce nom est le nom principal). Pour trouver l'ID de site, vous pouvez survoler le réseau> admin> site qui indiquera l'ID de site sur lequel vous travaillez. J'espère que cela aide toute personne qui recevait les cookies à bloquer ou à ne pas prendre en charge le message lors de la connexion. Meilleurs voeux SamTapsell
sam tapsell
la source
0

J'ai pu résoudre le problème après avoir ajouté ce qui suit dans wp-config.php. Référence

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 ) );
Baga
la source
-1

Veuillez essayer d'ajouter ce qui suit à votre fichier wp-config.php

Supprimez également tous les cookies de votre navigateur avant de tester

define( 'COOKIE_DOMAIN', $_SERVER[ 'HTTP_HOST' ] );
Dean Jansen
la source
Lorsque j'ai apporté ce changement, je ne pouvais me connecter à aucun site Web, y compris le site Web principal.
Steve