Сайт перенаправляет на wp-signup.php
Я перенес контент с нашего продакшн сервера на dev сервер, пытаясь синхронизировать все окружения. Я использовал плагин All-In-One WP Migration.
Теперь при доступе к dev.domain.com меня перенаправляет на http://dev.domain.com/wp-signup.php?new=dev.domain.com
Похоже, что одно из значений в базе данных неверно, и WordPress перенаправляет меня сюда из-за этого. Если я отключаю Multisite, всё работает правильно.
Вот мой .htaccess:
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
<FilesMatch "^(wp-config\.php|readme\.html|license\.txt)">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
и мой wp-config:
/** Мультисайт / Сеть WordPress **/
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'dev.domain.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
/** исправление для поддоменов Multisite - Не работает для меня :( */
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');

Вам нужно добавить эти строки в ваш файл wp-config.php:
define( 'NOBLOGREDIRECT', '' );
define( 'WP_HOME', 'http://dev.domain.com' );
define( 'WP_SITEURL', 'http://dev.domain.com' );
Таким образом, полный код будет выглядеть так:
$base = '/';
/** Мультисайт / Сеть WordPress **/
define( 'WP_HOME', 'http://dev.domain.com' );
define( 'WP_SITEURL', 'http://dev.domain.com' );
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'dev.domain.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
/** исправление для мультисайта 'SubDomains' - У меня не работает :( */
define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIE_DOMAIN', '' );
define( 'COOKIEPATH', '' );
define( 'SITECOOKIEPATH', '' );
define( 'NOBLOGREDIRECT', 'http://dev.domain.com' );
И обязательно проверьте таблицу dbprefix_options в базе данных на предмет всех упоминаний домена.

В моем случае, помимо перечисленных выше изменений, проблема оказалась в конфигурации DNS у моего хостинг-провайдера. Когда WordPress изначально был установлен как однодоменный сайт, в DNS была запись *.mydomain.com
, указывающая на mydomain.com
. Затем сайт был переведен на мультисайт, и все работало как ожидалось. В итоге, когда мы вернулись обратно к однодоменному сайту, я начал получать указанную выше ошибку. Удаление записи *.mydomain.com
из моих DNS решило проблему.

Хочу поделиться решением, которое сработало в моем случае. Перейдите в таблицу базы данных wp_options и убедитесь, что добавлен WWW, чтобы URL выглядел как https://www.domain.com, а не https://domain.com. Сделайте это для обеих записей - siteurl и home в таблице.

Я дополняю решение Бакстера Джонса с небольшим дополнительным контекстом к исходному вопросу. Я вручную изменил записи в таблице options для полей 'siteurl' и 'home' с 127.0.0.1/wordpress на http://dev.domain.com/. Это сработало для меня после внесения других предложенных изменений в файл wp-config.

Вы уверены? Корректно ли настроен DNS для поддомена www, и правильно ли настроен ваш веб-сервер, чтобы рассматривать www как часть виртуального хоста сайта WordPress? Вы точно не используете www? Некоторые современные браузеры скрывают www в адресной строке, даже если вы его используете.
