Цикл перенаправлений (только для администратора мультисайтовой сети)
Я могу нормально войти в http://localhost/wp/wp-admin/, но при попытке входа в http://localhost/wp/wp-admin/network/ возникает циклическое перенаправление в сети (ERR_TOO_MANY_REDIRECTS). При этом сайт нормально загружается даже при авторизованном входе.
Как можно выяснить причину этого? WordPress 4.1 установлен в подкаталог 'wp', затем преобразован в мультисайт. В сети пока только один сайт.
обновление: Это кажется очень актуальным: https://wordpress.org/support/topic/network-site-redirect-loop-solution
- Обходное решение заключается в удалении проверки соответствия между
$current_blog->path
и$current_site->path
.
Я пробовал очистить куки и добавить этот код в wp-config:
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
Мой .htaccess (не модифицированный после настройки WordPress multisite):
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# добавить завершающий слэш к /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wp/$2 [L]
RewriteRule . index.php [L]

У меня была такая же проблема с редиректом при попытке доступа к wp-admin/network. Внесение следующих изменений решило проблему.
1). В файле wp-config.php
добавил www.website.com
вместо просто website.com
define('DOMAIN_CURRENT_SITE', 'www.website.com');
2). Использовал phpmyadmin --> таблица wp_blogs
Добавил www.
к значению домена
По сути, имя сайта и имя блога должны быть абсолютно одинаковыми.
Удачи!

Проблема здесь: в файле htaccess, вместо этого:
RewriteBase /
должно быть:
RewriteBase /wp/
В файле wp-config.php
должны быть следующие настройки:
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); //или true, зависит от выбранного вами способа
define('DOMAIN_CURRENT_SITE', 'localhost');
define('PATH_CURRENT_SITE', '/wp/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Есть ещё одна возможная причина зацикливания при попытке доступа к:
/wp-admin/network/
Редирект срабатывает в нижней части файла:
/wp-admin/network/admin.php
Там проверяется, что текущий блог и текущий сайт имеют одинаковые значения пути и домена. Если они различаются, происходит редирект.
Дважды проверьте, что путь, указанный в таблице wp_blogs, совпадает с путём, установленным для текущего сайта.
Эти значения могут рассинхронизироваться, особенно при установке приложений внутри директории, например, /blog/

Это решение сработало для меня, так как у меня была мультисайтовая установка в поддиректории. Необходимо синхронизировать URL в 1) БД > wp_blog 2) БД > wp_sites, А ТАКЖЕ 3) wp_config.php > DOMAIN_CURRENT_SITE, PATH_CURRENT_SITE.

В вашем файле wp-config.php вам следует переопределить серверные переменные, вызывающие проблему, добавив следующий код ниже конфигурации базы данных в wp-config:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
$_SERVER[ 'SERVER_ADDR' ] = DOMAIN_CURRENT_SITE;
$_SERVER[ 'REMOTE_ADDR' ] = DOMAIN_CURRENT_SITE;
$_SERVER[ 'HTTP_HOST' ] = DOMAIN_CURRENT_SITE;
Конечно, вам нужно установить мультисайтовую константу define('DOMAIN_CURRENT_SITE', 'www.betterplace.org'); выше этого кода.

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', '**https://hotgossips.in**');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
define( 'DISALLOW_FILE_EDIT', false );
Просто укажите полный адрес вашего сайта в URL, независимо от того, начинается ли он с www, https или https://www
После дня поисков я нашел решение. Это сработало для меня. Надеюсь, сработает и для вас!!
