Pliki cookie w wielu witrynach, w których witryny sieciowe mają własną nazwę domeny

14

Postanowiłem zintegrować kilka niezależnych stron Wordpress w jednej instalacji na wielu stronach.

Utworzyłem zupełnie nową instalację z wieloma katalogami z podkatalogami, utworzyłem witrynę sieciową MU z adresem URL podkatalogu i wyeksportowałem zawartość z oryginalnej autonomicznej witryny, a następnie zaimportowałem tę zawartość do strony MU podkatalogu.

Następnie usunąłem oryginalną samodzielną witrynę z cPanel i ustawiłem nazwę domeny witryny MU na oryginalną nazwę domeny.

Witryna ładuje swoją oryginalną nazwę domeny, ale kiedy próbuję zalogować się do domainname.com/wp-admin (używając zupełnie nowych danych logowania administratora sieci w wielu miejscach), pojawia się błąd:

BŁĄD: pliki cookie są blokowane lub nie są obsługiwane przez przeglądarkę. Aby korzystać z WordPress, musisz włączyć obsługę plików cookie.

Pliki cookie włączone w Chrome.

Próbowałem dodać następujące elementy wp-config.php:

define('COOKIE_DOMAIN', false);

ale problem pozostaje.

Ten sam problem występuje, jeśli korzystam z WP Migrate DB Pro, aby pobrać autonomiczną witrynę internetową do witryny podkatalogu MU, a następnie usunąć autonomiczną witrynę z cPanel, a następnie ustawić adres URL witryny podkatalogu MU jako oryginalną nazwę domeny autonomicznej witryny. Front strony ładuje się dobrze, po prostu nie mogę się zalogować do administratora.

Pomoc doceniona.

Steve
źródło
Dzięki @bueltge, próbowałem dodać, define('COOKIE_DOMAIN', false);ale logowanie do podstrony z własną domeną nie działa - zapętla się z powrotem do tego samego ekranu logowania.
Steve
@ Steve powinieneś dokładnie sprawdzić, co stwierdza odpowiedź i ustawić pusty ciąg znaków, tj define('COOKIE_DOMAIN', '');. Wartość logiczna falsemoże, ale nie musi mieć takie samo znaczenie jak pusty ciąg '', w zależności od aplikacji.
bosco
Mówiąc MU, masz na myśli, że używasz wtyczki mapowania domen? Dzięki.
Greeso
Nie @Greeso, używając wbudowanej funkcji adresu URL witryny.
Steve

Odpowiedzi:

22

Najpierw wyczyść pamięć podręczną przeglądarki (w tym pliki cookie) + pamięć podręczną serwera z wtyczek pamięci podręcznej itp.

Następnie ustaw następujące parametry w swoim wp-config.phppliku:

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

Możesz również sprawdzić odpowiedź TUTAJ :

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');

Jeśli nadal nie powiedzie się, przeczytaj tę odpowiedź lub skontaktuj się ze wsparciem serwera, może to oznaczać problem z konfiguracją serwera.

Scott
źródło
Cześć Scott. Podobny problem pojawił się na innej stronie MU. Dodałem powyższe stałe wp-config.php, ale na tej innej stronie MU childsitedomain.com/wp-login.phppojawia się błąd. The constant "COOKIE_DOMAIN" is defined (probably in wp-config.php). Please remove or comment out that define() line.Masz jakieś pomysły, jak poradzić sobie z tą sytuacją?
Steve
Jeśli skomentuję to oświadczenie, otrzymam błąd po zalogowaniu się na stronie podrzędnej:ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
Steve
Podniosłem ten problem w nowym pytaniu .
Steve
7

Korzystanie z WordPress w wersji 4.9.4.

Otrzymałem błąd związany z plikiem cookie, przejrzałem różne opcje pomocy i ostatecznie rozwiązałem go za pomocą mieszanki poprawki Scotta:

Uwaga: nie wyczyściłem pamięci podręcznej plików cookie

a) Edycja w sunrise.phplinii wp-config.php(korzystałem z natywnego mapowania domen, więc usunąłem wprowadzone przeze mnie zmiany instalacyjne wtyczki MU)

b) Dostosowałem mój wp-config.phpdo

/* 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. */
użytkownik140609
źródło
3

Wreszcie po dosłownie godzinach rozwiązywania problemów udało mi się to rozwiązać w instancji AWS Lightsail Bitnami Multisite Wordpress (WordPress 5.0.4), wykonując następujące czynności:

  1. Upewnij się, że wtyczka WPMU Domain Mapping jest wyłączona
  2. Edytuj /opt/bitnami/apps/wordpress/htdocs/wp-config.php ...

    za. Dodaj następujące:

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

    b. Skomentować:

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

Po tych zmianach logowanie się powiodło - żadnych błędów. Dzięki za wkład wszystkich. Gdyby nie to, nadal drapałbym się po głowie.

Znalazłem odpowiedź tutaj:

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

Ta funkcja mapowania domen jest zawarta w WordPress Multisite od wersji 4.5 . Jeśli używasz starszej wersji, potrzebujesz wtyczki WordPress MU Domain Mapping.

Wygląda więc na to, że wtyczka WPMU Domain Mapping jest niepotrzebnie zawarta w pakiecie AWS Lightsail Bitnami Multisite.

George Drew
źródło
Dzięki za to! Działa dla mnie bez wyłączania wtyczki WPMU Domain Mapping. Nigdzie też nie znalazłem SUNRISE, więc też nie musiałem tego komentować.
Monarcha Wadia,
2

Właśnie skończyłem rozwiązywać podobny problem z wieloma domenami subdomen.

Z:

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

Witryna nadal zgłaszała błąd pliku cookie, aw niektórych przypadkach próbowała tego, co sugerowano powyżej .........

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

Spowodowało to inny błąd podczas usuwania definicji odwołujących się do „COOKIE_DOMAIN” podczas odwiedzania podwitryn.

W końcu udało mi się zalogować po upewnieniu się, że oba zostały zdefiniowane tuż nad informacjami o sieci w wielu miejscach

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

Upewnij się, że oba są zdefiniowane. Mam nadzieję, że to pomoże.

Ruben Apolinar
źródło
Aby wyjaśnić powyższe, wydaje się, że działa z funkcją „tylko zdefiniuj” („COOKIE_DOMAIN”, „”);
Ruben Apolinar,
1

Skomentowałem zdefiniuj („SUNRISE”, „on”);

/ * zdefiniuj („SUNRISE”, „on”); * /
zdefiniuj ('COOKIE_DOMAIN', $ _SERVER ['HTTP_HOST']);
Zdefiniuj („COOKIE_DOMAIN”, „”);

Następnie nie widzę poniższego komunikatu o błędzie:

BŁĄD: pliki cookie są blokowane lub nie są obsługiwane przez przeglądarkę. Aby korzystać z WordPress, musisz włączyć obsługę plików cookie.

Logowanie również zaczęło działać.

Joone Hur
źródło
1

Miałem też ten problem i natknąłem się na wiele rozwiązań, takich jak te wymienione tutaj, ale one nie działały.

To, co zadziałało, to po prostu dodanie do konfiguracji wielu witryn w wp-config:

define('COOKIE_DOMAIN', false);

aby sekcja w wp-config wyglądała tak:

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

publikowanie tutaj, aby inni mogli go znaleźć i spędzać mniej czasu uderzając głową o biurko niż ja.

ronaut
źródło
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);

Oto moja nowa wp-config. Wygląda na to, że stała się konkretną witryną i nie pozwalała na działanie innych domen - tylko subdomeny. Świetne odpowiedzi tutaj.

Andy
źródło
0

Miałem też ten problem i nic nie pomogłem. Wypróbowałem to w Microsoft Edge i nie dostałem błędu.

Przynajmniej w moim przypadku przyczyną problemu był tylko Google Chrome.

wąż
źródło
0

Dziwne, że działało dla mnie (na więcej niż jednym miejscu), aby ustawić SUBDOMAIN_INSTALL na false. Szczerze mówiąc, nie miałem czasu na dalsze badanie, dlaczego ...

define('SUBDOMAIN_INSTALL', false);

Martin z WP-Stars.com
źródło
0

TO NAPRAWIONO TO DLA MNIE Nie skonfigurowałem WordPress w pełni dla nowej nazwy domeny. I stworzył mojej stronie subdomain.domain.com Potem chciał pozostać newdomain.com nad subdomain.domain.com Wymagało to

  1. WordPress network> admin> site , zmień stronę na nową nazwę (co już zrobiłem, strona działa)
  2. Sieć WordPress > admin> ustawienia> domeny , dodaj nową nazwę do identyfikatora witryny i zaznacz tak dla domeny podstawowej (aby wskazać, że ta nazwa jest nazwą podstawową). Aby znaleźć identyfikator witryny, możesz najechać wskaźnikiem myszy na sieć> admin> witryna, która powie, nad którym adresem pracujesz. Mam nadzieję, że to pomoże każdemu, kto dostał ciasteczka, blokuje lub nie obsługuje wiadomości podczas próby zalogowania. Najlepsze życzenia SamTapsell
sam tapsell
źródło
0

Byłem w stanie rozwiązać problem po dodaniu poniżej w wp-config.php. Odniesienie

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
źródło
-1

Spróbuj dodać następujące informacje do pliku wp-config.php

Przed testowaniem usuń również wszystkie pliki cookie z przeglądarki

define( 'COOKIE_DOMAIN', $_SERVER[ 'HTTP_HOST' ] );
Dean Jansen
źródło
Kiedy dokonałem tej zmiany, nie mogłem zalogować się na żadnej stronie, w tym na głównej.
Steve