Вопрос или проблема
Каждый раз, когда я создаю новый сайт на своем мультисайтовом установке, я получаю бесконечный цикл перенаправлений при попытке перейти в админку этого сайта. Я использую стандартный htaccess, предоставленный WP для моей установки в подкаталоге. Вот что у меня есть:
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).*) site/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ site/$2 [L]
RewriteRule . index.php [L]
К вашему сведению – моя установка wp находится в папке с названием ‘site’, и проблема возникает как на моей локальной установке mamp, так и на хостинговом сервере.
Вот информация о мультисайте из файла конфигурации:
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', APP_URL);
define('PATH_CURRENT_SITE', '/site/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Я провел последние 2 дня, гугля, но безуспешно. Вот несколько решений, которые я пробовал, но они не помогли:
- http://tommcfarlin.com/resolving-the-wordpress-multisite-redirect-loop/
- http://wordpress.org/support/topic/fresh-install-subfolder-multisite-infinite-redirect-loop-sub-blog-login
Буду признателен за любую помощь. Я начинаю паниковать :-/
Я нахожусь в похожем процессе, и пока перенаправления работают у меня нормально. Возможно, стоит взглянуть на следующую проблему Изменение установки мультисайта в подкаталоге на структуру подкаталога ядра и посмотреть, как они её решили.
Попробуйте установить плагин Better HTTP Redirects и включить wp_debug
в вашем файле wp_config.php
. Этот плагин прерывает любые перенаправления, которые выполняет WordPress, и дает вам информацию о последней функции, вызванной перед перенаправлением, чтобы вы могли выяснить, что вызывает проблему.
Ответ или решение
Проблема бесконечной петли перенаправления при работе с многоуровневыми сайтами WordPress в подкаталогах может быть вызвана несколькими факторами. Давайте рассмотрим возможные решения этой проблемы на основе представленных вами факторов.
1. Проверка конфигурации .htaccess
Ваш файл .htaccess
выглядит в целом нормально, но вы можете попробовать следующую конфигурацию, чтобы убедиться, что все правильно настроено. Попробуйте заменить ваш файл .htaccess
на следующий:
RewriteEngine On
RewriteBase /site/
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).*) site/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ site/$2 [L]
RewriteRule . index.php [L]
Обратите внимание на строку RewriteBase /site/
, так как она указывает, что ваша установка WordPress находится в папке site
. Это может повлиять на то, как маршрутизируются ваши запросы.
2. Проверка параметров в wp-config.php
Ваш файл wp-config.php
выглядит правильно для установки мультисайтов. Убедитесь, что вы правильно задали константу DOMAIN_CURRENT_SITE
, например:
define('DOMAIN_CURRENT_SITE', 'localhost'); // или ваше доменное имя, если на сервере
Также убедитесь, что нет лишних пробелов или символов, которые могут вызывать проблемы.
3. Убедитесь, что у вас нет конфликтующих плагинов
Иногда плагины могут вызывать проблемы с перенаправлениями. Отключите все плагины и проверьте, сохраняется ли проблема. Если она исчезнет, включайте плагины по одному, чтобы выяснить, какой из них вызывает проблему.
4. Активируйте отладку
Включите отладку в вашем файле wp-config.php
:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
После того как вы сделаете это, перейдите к админке нового сайта и проверьте файл debug.log
в директории wp-content
. Это может дать вам больше информации о том, что вызывает бесконечное перенаправление.
5. Проверьте настройки сервера
Если вы используете локальную машину с MAMP или какой-либо другой сервер, убедитесь, что у вас правильно настроены параметры виртуального хоста и что нет конфликтов с перенаправлениями. Иногда кэширование на уровне сервера также может быть причиной проблем.
6. Попробуйте использовать плагин для диагностики
Установите плагин, такой как Better HTTP Redirects. Этот плагин может помочь вам отследить, на каком этапе происходит перенаправление и что именно вызывается перед этим.
Заключительные советы
Если ни одно из предложенных решений не помогает, рассмотрите возможность создания нового локального окружения или сервера и повторной установки WordPress с мультисайтовым функционалом, чтобы убедиться, что ничего не нарушено в процессе первоначальной настройки.
Надеюсь, эти советы помогут вам разрешить проблему бесконечной петли перенаправления на вашем мультисайтовом WordPress. Если будут дополнительные вопросы, не стесняйтесь спрашивать.