Файли cookie в мультисайті, де веб-сайти мають власне доменне ім’я


14

Я вирішив інтегрувати декілька автономних веб-сайтів Wordpress в одну багатомісну установку.

Я створив абсолютно нову мультисайтову установку з підкаталогами, створив мережевий веб-сайт MU з підкаталогом URL та експортував вміст з оригінального автономного сайту, потім імпортував цей вміст у підкаталог MU-сайту.

Потім я видалив оригінальний окремий сайт із cPanel і встановив доменне ім'я сайту MU на оригінальне доменне ім'я.

Сайт завантажує своє оригінальне доменне ім’я, але коли я намагаюся увійти до domainname.com/wp-admin (використовуючи абсолютно нові облікові дані адміністратора мережевого адміністрування мультисайту), я отримую помилку:

ПОМИЛКА: Ваш веб-переглядач блокується або не підтримується. Ви повинні ввімкнути файли cookie, щоб використовувати WordPress.

Кукі будуть дозволені в Chrome.

Я спробував додати наступне wp-config.php:

define('COOKIE_DOMAIN', false);

але питання залишається.

Ця ж проблема виникає, якщо я використовую WP Migrate DB Pro, щоб перетягнути окремий веб-сайт на сайт підкаталогу MU, потім видалити окремий сайт з cPanel, а потім встановити URL-адресу сайту підкаталогу MU як оригінальну доменну назву сайту окремого сайту. Передня частина сайту добре завантажується, я просто не можу увійти до адміністратора.

Допомога оцінена.



Завдяки @bueltge, спробували додати, define('COOKIE_DOMAIN', false);але увійти на під-сайт із власним доменом не працює - він повертається до того самого екрана входу.
Стів

@Steve ви повинні спеціально спробувати те, що відповідає у відповіді, і встановити його в порожній рядок, тобто define('COOKIE_DOMAIN', '');. Булевий falseможе мати або не мати таке ж значення, як порожній рядок '', залежно від програми.
bosco

MU, ти маєш на увазі, що ти використовуєш плагін для відображення домену? Дякую.
Greeso

Ні @Greeso, використовуючи вбудовану функцію URL-адреси сайту.
Стів

Відповіді:


22

Перший ясний кеш браузера (включаючи файли cookie) + кеш-сервер із плагінів кешу тощо.

Потім встановіть у своєму wp-config.phpфайлі таке:

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

Також ви можете зачитати відповідь ТУТ :

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

Якщо вона все-таки не вдається, прочитайте цю відповідь або зверніться до служби підтримки вашого сервера.


Привіт Скотт. Аналогічне питання виникло на іншому сайті МУ. Я додав константи вище wp-config.php, але на цьому іншому веб-сайті MU childsitedomain.com/wp-login.phpстворює помилку. The constant "COOKIE_DOMAIN" is defined (probably in wp-config.php). Please remove or comment out that define() line.Будь-які ідеї, як вирішити цю ситуацію?
Стів

Якщо я коментую це твердження, я отримую помилку після входу на дочірній сайт:ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
Стів

Я порушив це питання в новому питанні .
Стів

7

Використання версії WordPress 4.9.4.

Я отримував помилку в файлі cookie, переглядав різні варіанти довідки і врешті-решт вирішив її, використовуючи суміш виправлень Скотта:

Примітка. Я не робив жодного очищення кеш-файлів cookie

а) Редагування sunrise.phpрядка в wp-config.php(я використовував картографічне налаштування доменного домену, тому я видалив MU плагін, встановив зміни, які я вніс)

б) Скоригований мій wp-config.phpTo

/* 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. */

3

Нарешті, через години, буквально, з усунення несправностей, я зміг вирішити це на екземплярі AWS Lightsail Bitnami Multisite Wordpress (WordPress 5.0.4), виконавши наступне:

  1. Переконайтесь, що плагін WPMU домену для картографування домену відключений
  2. Редагувати /opt/bitnami/apps/wordpress/htdocs/wp-config.php ...

    а. Додайте наступне:

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

    б. Прокоментувати:

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

Після цих змін вхід був успішним - помилок немає. Дякуємо за внесок усіх Якби не це, я б все одно чухав голову.

Тут я знайшов відповідь:

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

Ця функція відображення домену включена в WordPress Multisite з версії v4.5 . Якщо ви використовуєте старішу версію, вам знадобиться плагін WordPress MU Mapping Mapping.

Отже, виявляється, що плагін WPMU Domain Mapping необов’язково включений у пакет AWS Lightsail Bitnami Multisite.


Дякую за це! Це працювало для мене, не вимикаючи плагін WPMU Domain Mapping. Я також ніде не знайшов СУНРІЗУ, тому мені також не довелося коментувати це.
Монарх

2

Щойно я закінчив усунення подібної проблеми з піддоменом багатомісний.

З:

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

Сайт все ще кидав помилку cookie, а в деяких випадках намагався виконувати те, що було запропоновано вище .........

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

Це призвело до іншої помилки для видалення. Визначає посилання "COOKIE_DOMAIN" під час відвідування підділів.

Нарешті, я зміг увійти в систему, переконавшись, що обидва вони були визначені трохи вище, ніж інформація про багатосторонні мережі

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

Спробуйте переконатися, що вони обоє визначені. Я сподіваюся, що це допомагає.


Для уточнення вище, здається, працює з просто визначити ('COOKIE_DOMAIN', '');
Рубен Аполінар

1

Я прокоментував визначення ("SUNRISE", "on");

/ * визначити ('SUNRISE', 'on'); * /
define ('COOKIE_DOMAIN', $ _SERVER ['HTTP_HOST']);
define ('COOKIE_DOMAIN', '');

Тоді я не бачу нижче повідомлення про помилку:

ПОМИЛКА: Ваш веб-переглядач блокується або не підтримується. Ви повинні ввімкнути файли cookie, щоб використовувати WordPress.

Вхід також почав працювати.


1

Тож у мене виникло і це питання, і я натрапив на багато рішень, таких як згадані тут, але вони не спрацювали.

Що було в роботі, це просто додати наступне до конфігурації багатосайтових сайтів у wp-config:

define('COOKIE_DOMAIN', false);

так що розділ у wp-config виглядає так:

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

розміщую тут, щоб інші могли знайти його і витратити менше часу, стукаючи головою об свій стіл, ніж я.


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

Ось мій новий wp-config. Схоже, він отримав жорстке кодування для певного веб-сайту і не дозволив працювати іншим доменам - лише субдоменам. Чудові відповіді тут.


0

У мене теж було це питання, і я нічого не допомагав. Спробував це в Microsoft Edge, і не отримав помилку.

Тож у моєму випадку проблема була саме Google Chrome.


0

Як не дивно, для мене (на декількох мультисайтах) було встановлено значення SUBDOMAIN_INSTALL на false. Якщо чесно, я не встиг далі дослідити, чому ...

define('SUBDOMAIN_INSTALL', false);


0

ЦЕ ФІКСОВАНО МЕНЕ Я не налаштував WordPress повністю для нового доменного імені. Я створив свій сайт subdomain.domain.com Я тоді хотів залишитися як newdomain.com над subdomain.domain.com Це потрібно

  1. Мережа WordPress > адміністратор> сайт , змініть сайт на нове ім'я (що я вже робив, сайт працював)
  2. Мережа WordPress > адміністратор> налаштування> домени , додайте нове ім'я до ідентифікатора сайту та позначте "Так" для основного домену (щоб вказати це ім'я - основне ім'я). Щоб знайти ідентифікатор сайту, ви можете навести курсор миші на мережу> адміністратор> сайт, який скаже, над яким ідентифікатором сайту ви працюєте. Сподіваємось, це допомагає всім, хто отримував файли cookie, заблоковані або не підтримуються повідомленням при спробі ввійти Найкращі побажання SamTapsell

0

Мені вдалося вирішити проблему після додавання нижче в wp-config.php. Довідково

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

-1

Спробуйте додати наступне у файл wp-config.php

Також видаліть усі файли cookie зі свого браузера перед тестуванням

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

Коли я вніс цю зміну, я не зміг увійти на жоден веб-сайт, включаючи головний веб-сайт.
Стів
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.