Файлы 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

Первый очистить кеш браузера (включая куки) + кеш сервера из плагинов кеша и т. Д.

Затем установите следующее в вашем 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');

Если по-прежнему не удается, прочитайте этот ответ или обратитесь в службу поддержки вашего сервера, возможно, проблема в конфигурации сервера.

Скотт
источник
Привет Скотт. Аналогичная проблема возникла на другом сайте MU. Я добавил константы выше 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.
Steve
Я поднял эту проблему в новом вопросе .
Стив
7

Использование WordPress версии 4.9.4.

Я получал ошибку cookie, просматривал различные варианты справки и в конце концов решил ее, используя смесь исправлений Скотта:

Примечание: я не делал очистки кеша

a) Редактирование sunrise.phpстроки wp-config.php(я использовал родное сопоставление доменов, поэтому удалил сделанные мной изменения установки плагина MU)

б) скорректировано мое wp-config.phpк

/* 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. */
user140609
источник
3

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

  1. Убедитесь, что подключаемый модуль WPMU Domain Mapping отключен
  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 начиная с версии 4.5 . Если вы используете более старую версию, вам понадобится плагин WordPress MU Domain Mapping.

Таким образом, похоже, что подключаемый модуль WPMU Domain Mapping необязательно включен в пакет AWS Lightsail Bitnami Multisite.

Джордж Дрю
источник
Спасибо за это! У меня это работало без отключения плагина WPMU Domain Mapping. Я также нигде не нашел SUNRISE, поэтому мне не пришлось это комментировать.
Монарх Вадиа
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', '');

Попробуйте убедиться, что они оба определены. Надеюсь, это поможет.

Рубен Аполинар
источник
Чтобы пояснить выше, похоже, что он работает только с define ('COOKIE_DOMAIN', '');
Рубен Аполинар
1

Я закомментировал определение («ВОСХОД», «на»);

/ * define ('ВОСХОД', 'вкл'); * /
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);

размещать здесь, чтобы другие могли найти его и тратить меньше времени, стуча головой об стол, чем я.

ronaut
источник
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);

Мартин из WP-Stars.com
источник
0

Это исправило это для меня Я не полностью настроил WordPress для нового доменного имени. Я создал свой сайт subdomain.domain.com Затем я хотел остаться как newdomain.com поверх subdomain.domain.com Это необходимо

  1. Сеть WordPress > администратор> сайт , измените сайт на новое имя (что я уже сделал, сайт работал)
  2. Сеть WordPress > admin> настройки> домены , добавьте новое имя к идентификатору сайта и отметьте yes для основного домена (чтобы указать, что это имя является основным именем). Чтобы найти идентификатор сайта, вы можете навести курсор на сеть> администратор> сайт, который скажет, с каким идентификатором сайта вы работаете. Надеюсь, что это помогает любому, кто получал куки заблокированы или не поддерживается сообщение при попытке войти в систему
Сэм Тапселл
источник
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

Также удалите все куки из вашего браузера перед тестированием

define( 'COOKIE_DOMAIN', $_SERVER[ 'HTTP_HOST' ] );
Дин Янсен
источник
Когда я внес это изменение, я не смог войти ни на один веб-сайт, включая основной.
Стив