Cookie-uri în rețeaua Multisite unde site-urile au propriul nume de domeniu

13 mar. 2017, 07:09:35
Vizualizări: 31.9K
Voturi: 21

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.

7
Comentarii

Ai văzut acest răspuns Cum să configurezi WordPress Multisite pe mai multe domenii fără plugin?

bueltge bueltge
16 mar. 2017 15:41:45

Mulțumesc @bueltge, am încercat să adaug define('COOKIE_DOMAIN', false); dar autentificarea pe un sub-site cu propriul domeniu nu funcționează - revine la aceeași pagină de login.

Steve Steve
17 mar. 2017 20:23:33

@Steve ar trebui să încerci exact ce precizează răspunsul și să setezi un string gol, adică define('COOKIE_DOMAIN', '');. Valoarea booleană false poate avea sau nu același sens ca un string gol '', în funcție de aplicație.

bosco bosco
22 mar. 2017 01:42:22

Prin MU, te referi la faptul că folosești un plugin pentru maparea domeniilor? Mulțumesc.

Greeso Greeso
23 mar. 2017 06:25:29

Nu @Greeso, folosesc funcționalitatea încorporată pentru URL-ul site-ului.

Steve Steve
23 mar. 2017 07:22:26

Salut, nu am decât intuiția care să susțină acest lucru, dar nu ți se pare că setarea domeniului cookie la '' sau false este o idee foarte proastă din punct de vedere al securității?

squarecandy squarecandy
16 dec. 2018 00:19:13

Accesează phpmyadmin. În tabelul wp_option, siteurl și home trebuie să fie la fel ca numele domeniului tău.

bwise bwise
29 ian. 2019 22:33:56
Arată celelalte 2 comentarii
Toate răspunsurile la întrebare 15
5
39

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.

23 mar. 2017 12:04:04
Comentarii

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?

Steve Steve
27 mar. 2017 13:53:39

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.

Steve Steve
27 mar. 2017 13:56:18

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

Steve Steve
27 mar. 2017 14:03:10

cele 4 linii din secțiunea de sus au funcționat pentru mine

azote azote
21 iul. 2022 18:40:09

Setarea SUBDOMAIN_INSTALL la false m-a ajutat acum cu WordPress 6.7.1, am observat că aveați setat false în comparație cu alte răspunsuri. Anterior funcționa cu true, așa că nu știu dacă vreo actualizare WordPress a schimbat ceva legat de asta.

PatrikN PatrikN
16 dec. 2024 14:45:32
0

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.)

  1. Am eliminat linia referitoare la sunrise.php din wp-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)

  2. 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. */
    
27 mar. 2018 22:33:22
1

Î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:

  1. Asigură-te că plugin-ul WPMU Domain Mapping este dezactivat
  2. 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.

18 mar. 2019 20:32:06
Comentarii

Mulțumesc pentru asta! A funcționat pentru mine fără să dezactivez plugin-ul WPMU Domain Mapping. De asemenea, nu am găsit SUNRISE nicăieri, așa că nu a trebuit să comentez și asta.

Monarch Wadia Monarch Wadia
20 aug. 2019 01:08:39
2

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ă.

6 dec. 2017 19:16:07
Comentarii

Pentru a clarifica mai sus, se pare că funcționează doar cu define('COOKIE_DOMAIN', '');

Ruben Apolinar Ruben Apolinar
6 dec. 2017 19:22:45

Funcționează, dar întrerupe previzualizarea postării... primesc: Ne pare rău, nu aveți permisiunea să previzualizați schițele.

Alex Bogias Alex Bogias
7 ian. 2021 15:36:14
1

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.

23 ian. 2018 00:35:35
Comentarii

Puteți sări peste a doua linie de asemenea, deoarece este efectiv suprascrisă de a treia. :)

jgangso jgangso
17 aug. 2022 11:27:25
0

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.

9 mai 2018 01:05:49
1

Ciudat, a funcționat pentru mine (pe mai multe site-uri multisite) să setez SUBDOMAIN_INSTALL la false. Să fiu sincer, nu am avut timp să investighez mai departe de ce...

define('SUBDOMAIN_INSTALL', false);

20 aug. 2018 12:47:01
Comentarii

La fel și la mine acum cu WordPress 6.7.1. Anterior funcționa cu true, așa că nu știu dacă vreo actualizare WordPress a schimbat ceva legat de asta.

PatrikN PatrikN
16 dec. 2024 14:47:31
0

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. :)

17 aug. 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);

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.

31 mar. 2018 21:50:16
0

Am avut și eu această problemă și nimic din ce am încercat nu a funcționat. Am încercat în Microsoft Edge și nu am primit eroarea.

Deci, în cazul meu, problema a fost cauzată doar de Google Chrome.

30 apr. 2018 23:43:32
0

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:

  1. În WordPress rețea > admin > site, schimbarea numelui site-ului la noul nume (ceea ce deja făcusem, site-ul funcționa)
  2. Î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
17 oct. 2018 16:04:22
0

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 ) );
28 dec. 2018 13:49:55
0

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.

8 apr. 2020 19:14:01
0

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', '/');
24 oct. 2022 11:32:10
1
-1

Încercați să adăugați următoarele în fișierul wp-config.php

De asemenea, ștergeți toate cookie-urile din browser înainte de testare

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

Când am făcut acea modificare, nu am putut să mă autentific pe niciun site, inclusiv pe site-ul principal.

Steve Steve
17 mar. 2017 20:19:43