Cookie-uri în rețeaua Multisite unde site-urile au propriul nume de domeniu
Am decis să integrez mai multe site-uri WordPress independente într-o singură instalare Multisite.
Am creat o nouă instalare Multisite cu subdomenii, am creat un site în rețeaua MU cu URL subdomeniu, am exportat conținutul din site-ul original independent, apoi am importat acel conținut în site-ul MU subdomeniu. După aceea, am șters site-ul original independent din cPanel și am setat numele de domeniu al site-ului MU la numele de domeniu original.
Site-ul principal se încarcă corect acum pe numele său de domeniu original, dar când încerc să mă conectez la site-ul subdomeniu la site.example.com/wp-admin/
(folosind credențialele noului utilizator admin al rețelei multisite), primesc o eroare:
EROARE: Cookie-urile sunt blocate sau nu sunt suportate de browserul dumneavoastră. Trebuie să activați cookie-urile pentru a putea folosi WordPress.
Dar cookie-urile sunt activate în Chrome.
Am încercat să adaug următoarea linie în wp-config.php
:
define('COOKIE_DOMAIN', false);
...dar problema persistă.
Aceeași problemă apare dacă folosesc WP Migrate DB Pro pentru a importa un site independent într-un site subdomeniu MU, apoi șterg site-ul independent din cPanel și setez domeniul site-ului subdomeniu MU să fie domeniul original al site-ului independent... interfața frontend a site-ului se încarcă corect, dar nu mă pot conecta la panoul de administrare WP.

Mai întâi ștergeți cache-ul browserului (inclusiv cookie-urile) și cache-ul serverului (de exemplu, plugin-urile de cache). Apoi setați următoarele în fișierul wp-config.php
:
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
De asemenea, puteți consulta răspunsul de AICI:
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');
Dacă încă nu funcționează, atunci citiți acest răspuns sau contactați suportul serverului. Poate exista o problemă de configurare pe server.

Salut Scott. O problemă similară a apărut pe un alt site MU. Am adăugat constantele de mai sus în wp-config.php
, dar pe acest alt site MU, childsitedomain.com/wp-login.php
generează eroarea Constant "COOKIE_DOMAIN" este definită (probabil în wp-config.php). Te rog să elimini sau să comentezi acea linie define().
Ai vreo idee cum să abordăm această situație?

Dacă comentez acea linie, primesc eroarea după autentificarea pe site-ul copil: EROARE: Cookie-urile sunt blocate sau nu sunt suportate de browserul tău. Trebuie să activezi cookie-urile pentru a folosi WordPress.

Am ridicat această problemă într-o întrebare nouă.

Folosind WordPress versiunea 4.9.4.
Am întâmpinat eroarea legată de cookie-uri și am parcurs diverse opțiuni de ajutor, rezolvând în final problema folosind părți din soluția lui Scott. (Notă: Nu am efectuat nicio ștergere a cache-ului pentru cookie-uri.)
Am eliminat linia referitoare la
sunrise.php
dinwp-config.php
(utilizam maparea nativă a domeniului, așa că am eliminat modificările legate de instalarea plugin-ului MU pe care le făcusem anterior)Am ajustat
wp-config.php
astfel:/* Multisite */ define('WP_DEBUG', false); define( 'WP_ALLOW_MULTISITE', true ); define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'www.mysite.example'); 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', ''); /* Gata, opriți editarea! Blogging fericit. */

În sfârșit, după ore întregi, literalmente, de depanare, am reușit să rezolv această problemă pe instanța AWS Lightsail Bitnami Multisite WordPress (WordPress 5.0.4) efectuând următorii pași:
- Asigură-te că plugin-ul WPMU Domain Mapping este dezactivat
Editează /opt/bitnami/apps/wordpress/htdocs/wp-config.php...
a. Adaugă următoarele:
define('ADMIN_COOKIE_PATH', '/'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', ''); define('SITECOOKIEPATH', ''); /* Asta e tot, nu mai edita! Blogging fericit. */
b. Comentează:
// define('SUNRISE', 'on');
După aceste modificări, autentificarea a avut succes - fără erori. Mulțumesc pentru contribuția tuturor. Dacă nu era asta, probabil aș mai fi tot încercat să înțeleg problema.
Am găsit răspunsul aici:
https://docs.bitnami.com/aws/apps/wordpress-multisite/configuration/configure-wordpress-multisite
Această funcționalitate de mapare a domeniilor este inclusă în WordPress Multisite începând cu versiunea 4.5. Dacă folosești o versiune mai veche, vei avea nevoie de plugin-ul WordPress MU Domain Mapping.
Deci, se pare că plugin-ul WPMU Domain Mapping este inclus inutil în pachetul AWS Lightsail Bitnami Multisite.

Tocmai am terminat de rezolvat o problemă similară cu subdomeniul multisite.
Cu:
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
Site-ul încă afișa o eroare de cookie și în unele cazuri, încercând ceea ce a fost sugerat mai sus.........
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
Aceasta a cauzat o altă eroare de a șterge definițiile care făceau referire la "COOKIE_DOMAIN" la vizitarea subsitelor.
În cele din urmă, am reușit să mă autentific după ce m-am asigurat că ambele au fost definite chiar deasupra informațiilor despre rețeaua multisite
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIE_DOMAIN', '');
Încercați să vă asigurați că ambele sunt definite. Sper că acest lucru vă ajută.

Am comentat define('SUNRISE', 'on');
/* define('SUNRISE', 'on'); */ define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']); define('COOKIE_DOMAIN', '');
Apoi, nu mai văd mesajul de eroare de mai jos:
EROARE: Cookie-urile sunt blocate sau nu sunt acceptate de browserul dumneavoastră. Trebuie să activați cookie-urile pentru a utiliza WordPress.
Autentificarea a început să funcționeze și ea.

Am avut și eu această problemă și am dat peste multe soluții precum cele menționate aici, dar nu au funcționat.
Ceea ce a funcționat a fost simpla adăugare a următoarei linii în configurația multisite din wp-config:
define('COOKIE_DOMAIN', false);
astfel încât secțiunea din wp-config să arate astfel:
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);
Postez aici astfel încât alții să o găsească și să petreacă mai puțin timp lovindu-se cu capul de birou decât am făcut eu.

Nu știu despre voi, dar pentru mine a ajutat surprinzător de mult să schimb asta
define( 'COOKIEDOMAIN', '' );
în asta
define( 'COOKIE_DOMAIN', '' );
Și da, încă îndrăznesc să mă consider un dezvoltator experimentat de PHP & WP. Voiam doar să împărtășesc că ni se întâmplă tuturor. :)

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);
Iată noul meu fișier wp-config. Se pare că a fost hardcodat pentru un anumit site și nu permitea funcționarea altor domenii - doar subdomenii. Răspunsuri excelente aici.

ASTA A REZOLVAT PENTRU MINE Nu am configurat complet WordPress pentru noul nume de domeniu. Am creat site-ul meu subdomeniu.domeniu.com Apoi am vrut să rămână ca noudomeniu.com în loc de subdomeniu.domeniu.com Aceasta a necesitat:
- În WordPress rețea > admin > site, schimbarea numelui site-ului la noul nume (ceea ce deja făcusem, site-ul funcționa)
- În WordPress rețea > admin > setări > domenii, adăugarea noului nume la ID-ul site-ului și bifarea da pentru domeniul primar (pentru a indica că acest nume este cel principal). Pentru a găsi ID-ul site-ului, puteți trece cu mouse-ul peste rețea > admin > site unde va fi afișat ID-ul site-ului pe care lucrați. Sper că acest lucru ajută pe oricine primește mesajul că cookie-urile sunt blocate sau nu sunt suportate în timp ce încearcă să se autentifice Cele mai bune urări SamTapsell

Am reușit să rezolv problema după ce am adăugat următoarele în wp-config.php. Referință
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 ) );

Am rezolvat problema cu aceasta soluție:
Schimbă setarea DOMAIN_CURRENT_SITE în wp-config.php la:
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
Deci configurația mea arată astfel:
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);
Apoi am putut să mă autentific pe toate site-urile din rețea la adrese precum web1.example.com/wp-admin sau web2.example.com/wp-admin.

Aceasta este configurația pe care o folosim pe SlickStack pentru instalările Multisite... funcționează atât pentru rețele cu subdomenii, cât și pentru nume de domenii personalizate:
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);
Și apoi:
define('COOKIE_DOMAIN', false);
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
define('ADMIN_COOKIE_PATH', '/');
