Cookie in rete Multisite dove i siti hanno il proprio nome di dominio
Ho deciso di integrare diversi siti WordPress autonomi in un'unica installazione Multisite.
Ho creato una nuova installazione Multisite con sottodomini, creato un sito nella rete MU con URL sottodominio, ed esportato il contenuto dal sito autonomo originale, poi ho importato quel contenuto nel sito MU sottodominio. Ho quindi eliminato il sito autonomo originale da cPanel e impostato il nome di dominio del sito MU sul nome di dominio originale.
Il sito principale ora si carica correttamente sul suo nome di dominio originale, ma quando provo ad accedere al sito sottodominio su site.example.com/wp-admin/
(utilizzando le nuove credenziali dell'amministratore di rete multisite), ricevo un errore:
ERRORE: I cookie sono bloccati o non supportati dal tuo browser. Devi abilitare i cookie per utilizzare WordPress.
Ma i cookie sono abilitati in Chrome.
Ho provato ad aggiungere quanto segue a wp-config.php
:
define('COOKIE_DOMAIN', false);
...ma il problema persiste.
Lo stesso problema si verifica se uso WP Migrate DB Pro per importare un sito autonomo in un sito sottodominio MU, poi elimino il sito autonomo da cPanel, e quindi imposto il dominio del sito sottodominio MU come dominio del sito autonomo originale... il frontend del sito si carica correttamente, ma non riesco ad accedere all'admin di WP.

Prima cancella la cache del tuo browser (inclusi i cookie) e la cache del tuo server (ad esempio plugin di cache). Poi imposta quanto segue nel tuo file wp-config.php
:
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
Inoltre, potresti verificare la risposta da QUI:
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');
Se ancora non funziona, allora leggi questa risposta o contatta l'assistenza del tuo server. Potrebbe esserci un problema di configurazione sul server.

Ciao Scott. Un problema simile è emerso su un altro sito MU. Ho aggiunto le costanti sopra nel file wp-config.php
, ma su questo altro sito MU, childsitedomain.com/wp-login.php
produce l'errore La costante "COOKIE_DOMAIN" è definita (probabilmente in wp-config.php). Per favore rimuovi o commenta quella riga define().
Hai qualche idea su come affrontare questa situazione?

Se commento quella dichiarazione, ricevo l'errore dopo il login nel sito figlio: ERRORE: I cookie sono bloccati o non supportati dal tuo browser. Devi abilitare i cookie per usare WordPress.

Ho sollevato questo problema in una nuova domanda.

Impostare SUBDOMAIN_INSTALL su false mi ha aiutato ora con WordPress 6.7.1, ho notato che tu lo avevi impostato su false rispetto ad altre risposte. In precedenza funzionava con true, quindi non so se qualche aggiornamento di WordPress abbia cambiato qualcosa in relazione a questo.

Utilizzando WordPress versione 4.9.4.
Stavo riscontrando l'errore relativo ai cookie e ho esaminato varie opzioni di aiuto, riuscendo infine a risolverlo utilizzando parti della soluzione di Scott. (Nota: non ho eseguito alcuna pulizia della cache dei cookie.)
Ho rimosso la riga relativa a
sunrise.php
inwp-config.php
(stavo utilizzando il mapping di dominio nativo, quindi ho eliminato le modifiche all'installazione del plugin MU che avevo apportato)Ho modificato il mio
wp-config.php
come segue:/* Multisito */ define('WP_DEBUG', false); define( 'WP_ALLOW_MULTISITE', true ); define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'www.miosito.esempio'); 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', ''); /* Questo è tutto, interrompi la modifica! Buon blogging. */

Finalmente, dopo ore, letteralmente, di risoluzione dei problemi, sono riuscito a risolvere questo problema sull'istanza AWS Lightsail Bitnami Multisite WordPress (WordPress 5.0.4) eseguendo le seguenti operazioni:
- Assicurarsi che il plugin WPMU Domain Mapping sia disabilitato
Modificare /opt/bitnami/apps/wordpress/htdocs/wp-config.php...
a. Aggiungere quanto segue:
define('ADMIN_COOKIE_PATH', '/'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', ''); define('SITECOOKIEPATH', ''); /* Tutto qui, smetti di modificare! Buon blogging. */
b. Commentare:
// define('SUNRISE', 'on');
Dopo queste modifiche, il login è avvenuto con successo - nessun errore. Grazie a tutti per i contributi. Senza di essi, sarei ancora qui a grattarmi la testa.
Ho trovato la risposta qui:
https://docs.bitnami.com/aws/apps/wordpress-multisite/configuration/configure-wordpress-multisite
Questa funzionalità di mappatura dei domini è inclusa in WordPress Multisite dalla versione 4.5. Se stai utilizzando una versione più vecchia, avrai bisogno del plugin WordPress MU Domain Mapping.
Quindi sembra che il plugin WPMU Domain Mapping sia incluso inutilmente nel pacchetto AWS Lightsail Bitnami Multisite.

Ho appena finito di risolvere un problema simile con il multisito su sottodomini.
Con:
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
Il sito continuava a generare un errore sui cookie e in alcuni casi, provando quanto suggerito sopra.........
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
Questo causava un errore diverso che eliminava le definizioni relative a "COOKIE_DOMAIN" quando si visitavano i sottositi.
Alla fine sono riuscito ad accedere dopo aver assicurato che entrambe queste definizioni fossero presenti appena sopra le informazioni della rete multisito
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIE_DOMAIN', '');
Prova ad assicurarti che entrambe siano definite. Spero che questo aiuti.

Ho commentato la riga define('SUNRISE', 'on');
/* define('SUNRISE', 'on'); */
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIE_DOMAIN', '');
Dopodiché, non vedo più il seguente messaggio di errore:
ERRORE: I cookie sono bloccati o non supportati dal tuo browser. Devi abilitare i cookie per utilizzare WordPress.
Anche il login ha iniziato a funzionare.

Anch'io ho avuto questo problema e ho trovato molte soluzioni come quelle menzionate qui, ma non hanno funzionato.
Ciò che ha funzionato è stato semplicemente aggiungere quanto segue alla configurazione multisito in wp-config:
define('COOKIE_DOMAIN', false);
in modo che la sezione in wp-config risulti così:
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 posto qui in modo che altri possano trovarlo e passare meno tempo a sbattere la testa contro la scrivania di quanto abbia fatto io.

Non so voi, ragazzi, ma per me ha aiutato sorprendentemente tanto cambiare questo
define( 'COOKIEDOMAIN', '' );
in questo
define( 'COOKIE_DOMAIN', '' );
E sì, oso ancora considerarmi uno sviluppatore PHP & WP esperto. Volevo solo condividere che capita a tutti noi. :)

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);
Ecco la mia nuova configurazione wp-config. Sembra che fosse impostata in modo rigido per un sito specifico e non permetteva ad altri domini di funzionare - solo ai sottodomini. Ottime risposte qui.

QUESTO HA RISOLTO IL MIO PROBLEMA Non avevo configurato completamente WordPress per il nuovo nome di dominio. Avevo creato il mio sito sottodominio.dominio.com Poi volevo rimanere come nuovodominio.com invece di sottodominio.dominio.com Questo richiedeva:
- In WordPress rete > admin > sito, cambiare il nome del sito (cosa che avevo già fatto, il sito funzionava)
- In WordPress rete > admin > impostazioni > domini, aggiungere il nuovo nome all'ID del sito e spuntare sì per dominio primario (per indicare che questo nome è il dominio principale). Per trovare l'ID del sito, puoi passare il mouse su rete > admin > sito che mostrerà su quale ID del sito stai lavorando. Spero che questo aiuti chiunque stesse ricevendo il messaggio "i cookie sono bloccati o non supportati" quando cercava di accedere Saluti SamTapsell

Sono riuscito a risolvere il problema dopo aver aggiunto quanto segue nel file wp-config.php. Riferimento
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 ) );

Ho risolto il problema con questo:
Cambiare l'impostazione di DOMAIN_CURRENT_SITE in wp-config.php in:
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
Quindi la mia configurazione è questa:
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);
Dopo di che sono riuscito ad accedere a tutti i siti della rete multisito dagli URL come web1.example.com/wp-admin o web2.example.com/wp-admin.

Questo è ciò che utilizziamo su SlickStack per le installazioni Multisite... funziona sia per le reti con sottodomini che per i nomi di dominio personalizzati:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
define('NOBLOGREDIRECT', 'https://example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
E poi:
define('COOKIE_DOMAIN', false);
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
define('ADMIN_COOKIE_PATH', '/');
