Setarea COOKIE_DOMAIN și confuzia legată de aceasta

19 ian. 2016, 21:50:54
Vizualizări: 32.5K
Voturi: 4

Fac un upgrade la site-ul meu care rulează WordPress. Folosesc subdomeniul cdn pentru CDN și acesta trebuie să fie fără cookie-uri.

În prezent, site-ul meu este o multi-rețea de multisite-uri (ambele sunt instalări în subdirectorare), cu subdomeniul www care găzduiește proiectul meu principal de muzică, și subdomeniul photo care găzduiește proiectul meu de fotografie.

Plugin-ul pe care îl folosesc pentru acest tip de multi-rețea este: https://github.com/stuttter/wp-multi-network

Am nevoie să folosesc Single Sign-on. Și asta mă duce la o confuzie în timp ce setez COOKIE_DOMAIN în wp-config.php. Pot seta așa cum spune documentația plugin-ului:

define( 'COOKIE_DOMAIN',     'mydomain.com'        );

dar știu că acest lucru ar face ca cookie-urile să fie servite și de pe cdn.mydomain.com.

Cum pot seta COOKIE_DOMAIN astfel încât să servească cookie-uri doar de pe cele două subdomenii www și photo?

Sau trebuie să folosesc un alt nume de domeniu doar pentru CDN?

4
Comentarii

Este cdn.mydomain.com unul dintre site-urile din rețeaua ta WordPress?

David David
20 ian. 2016 01:14:25

Nu. cdn.mydomain.com este găzduit pe un alt server (Google App Engine).

LQ2' LQ2'
20 ian. 2016 06:15:40

Atunci această propoziție este confuză: »dar știu că asta ar face ca cookie-urile să fie servite de la cdn.mydomain.com«. De ce ar afecta o constantă din configurația ta WP alte gazde?

David David
20 ian. 2016 11:38:49

Mulțumesc! Tocmai am testat site-ul meu folosind YSlow pe GTmetrix. CDN-ul meu este fără cookie-uri cu această setare.

LQ2' LQ2'
20 ian. 2016 16:18:04
Toate răspunsurile la întrebare 2
3

Am avut dificultăți în utilizarea domeniilor multisite ale WordPress nativ 4.x.

În ciuda găsirii unor referințe care afirmau că aceste linii corectau eroarea, niciuna dintre aceste setări nu a funcționat:

//define('COOKIE_DOMAIN', false);
//define( ‘COOKIE_DOMAIN’, $_SERVER[ ‘HTTP_HOST’ ] );

În final, am adăugat următoarele linii de cod în loc, și a funcționat minunat...

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

Nu sunt sigur dacă acest lucru va fi bun pentru tine?

  • Postez acest lucru în principal pentru viitorii cercetători care întâmpină probleme.
24 feb. 2017 03:48:52
Comentarii

Acest lucru mi-a stricat complet site-ul

Adal Adal
30 ian. 2018 04:16:58

dacă ți-a stricat site-ul, pur și simplu elimină codul și reconectează-te setând valorile originale. Acest lucru doar setează valorile cookie-urilor, nu afectează baza de date etc. Notă: site-ul meu rulează în directorul rădăcină (domain.com/), deci dacă ești într-un subdirector (domain.com/wordpress), atunci trebuie să setezi cookiepath ca /wordpress/ -

Wayne Brian Pearsall Wayne Brian Pearsall
31 ian. 2018 23:47:21

Hey Wayne, asta am făcut primul lucru. Totuși, nici eliminarea acelor definiții, nici setarea lor la alte valori nu a reușit să facă site-urile să funcționeze din nou. Am avut succes limitat folosind un sunrise.php... dar nu am reușit niciodată să mă conectez. Sunt pe Google Cloud VM. Am ajuns să restaurăm un snapshot al discului și să renunț la speranța că maparea nativă a domeniilor WPMU poate funcționa. M-am întors la utilizarea plugin-urilor.

Adal Adal
2 feb. 2018 00:44:14
0

Deoarece cdn.mydomain.com nu face parte din rețeaua ta WordPress, nu va fi afectat de setările tale.

Constanta COOKIE_DOMAIN ar trebui folosită doar dacă dorești să servești cookie-uri de la un singur domeniu pentru toate site-urile din rețea. Dacă omiți constanta sau o setezi la o valoare goală, cookie-urile vor aparține domeniului de la care sunt solicitate. Aceasta este configurația pe care trebuie să o folosești pentru mediile multisite/rețea, în special atunci când vine vorba de domenii diferite.

20 ian. 2016 16:27:13