Вопрос или проблема
Я установил сеть мультисайтов в WordPress на своем тестовом сервере, и она работала нормально, но когда я сделал то же самое на своем рабочем сервере, она не работает должным образом. Когда я пытаюсь войти в wp-admin, все открывается нормально, но когда я пытаюсь открыть панель управления подсайта, ее панель загружается без CSS, и ни одна из ссылок не открывается (каждая ссылка показывает “файл не найден”), в то время как панель управления по умолчанию работает отлично. Эта настройка работает корректно на моем тестовом сервере.
Ниже приведен мой htaccess:
RewriteEngine On
RewriteBase /pages/
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# для файлов, оканчивающихся на ".py"
<FilesMatch \.css$>
SetEnv no-gzip 1
</FilesMatch>
Вот мой wp-config:
/**
* Основные настройки WordPress.
*
* Этот файл содержит следующие параметры: настройки MySQL, префикс таблицы,
* секретные ключи, язык WordPress и ABSPATH. Вы можете найти больше информации
* на странице {@link http://codex.wordpress.org/Editing_wp-config.php Редактирование
* wp-config.php} Codex. Вы можете получить настройки MySQL у вашего веб-хоста.
*
* Этот файл используется скриптом создания wp-config.php во время
* установки. Вам не нужно использовать веб-сайт, вы можете просто скопировать этот файл
* в "wp-config.php" и заполнить значения.
*
* @package WordPress
*/
// ** Настройки MySQL - эту информацию вы можете получить у своего веб-хоста ** //
/** Название базы данных для WordPress */
define('DB_NAME', 'xxxxx');
/** Имя пользователя MySQL базы данных */
define('DB_USER', 'xxxxx');
/** Пароль MySQL базы данных */
define('DB_PASSWORD', 'xxxxx');
/** Имя хоста MySQL */
define('DB_HOST', 'localhost');
/** Кодировка базы данных, используемая при создании таблиц базы данных. */
define('DB_CHARSET', 'utf8');
/** Тип сортировки базы данных. Не изменяйте это, если не уверены. */
define('DB_COLLATE', '');
/**#@+
* Уникальные ключи и соли аутентификации.
*
* Измените эти значения на различные уникальные фразы!
* Вы можете сгенерировать их, используя {@link https://api.wordpress.org/secret-key/1.1/salt/ сервис секретных ключей WordPress.org}
* Вы можете изменять их в любое время, чтобы аннулировать все существующие cookie. Это заставит всех пользователей войти снова.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'xxxxx');
define('SECURE_AUTH_KEY', 'xxxxx');
define('LOGGED_IN_KEY', 'xxxxx');
define('NONCE_KEY', 'xxxxx');
define('AUTH_SALT', 'xxxxx');
define('SECURE_AUTH_SALT', 'xxxxx');
define('LOGGED_IN_SALT', 'xxxxx');
define('NONCE_SALT', 'xxxxx');
/**#@-*/
/**
* Префикс таблиц базы данных WordPress.
*
* Вы можете иметь несколько установок в одной базе данных, если вы дадите каждой уникальный
* префикс. Пожалуйста, используйте только цифры, буквы и подчеркивания!
*/
$table_prefix = 'wp_';
/**
* Для разработчиков: режим отладки WordPress.
*
* Измените это на true, чтобы включить отображение уведомлений во время разработки.
* Настоятельно рекомендуется, чтобы разработчики плагинов и тем использовали WP_DEBUG
* в своих средах разработки.
*/
define('WP_DEBUG', false);
/* На этом все, прекращайте редактирование! Приятного ведения блога. */
/* Мультисайт */
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'www.example.com');
define('PATH_CURRENT_SITE', '/pages/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
/** Абсолютный путь к директории WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . "https://wordpress.stackexchange.com/");
/** Устанавливает переменные WordPress и включает файлы
Пожалуйста, помогите..!!
Откройте файл wp-config.php. Отключите конкатенацию скриптов, добавив эту строку:
define('CONCATENATE_SCRIPTS', false);
Убедитесь, что вы добавили это перед:
/** Абсолютный путь к директории WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . "https://wordpress.stackexchange.com/");
Надеюсь, это поможет вам решить проблемы с установками WordPress!
Но не уверен насчет административных страниц. Это поможет решить проблему с вашей панелью управления.
Ответ или решение
У вас возникла проблема с работой панели управления подменьшенной подсистемы (subsite) в установке WordPress с мультисайтом на вашем производственном сервере. Давайте рассмотрим несколько возможных причин и решений этой проблемы.
Проблема
Судя по вашему описанию, при входе в панель управления подменю отсутствуют стили CSS, и большинство ссылок не работают (выдает ошибку 404). Это может указывать на проблемные настройки перезаписи (rewrite) или конфигурации пула (base path) на сервере.
Решения
-
Проверьте файл
.htaccess
:Убедитесь, что файл
.htaccess
настроен правильно. Ваш файл выглядит хорошо, но давайте его немного изменим, чтобы пробовать устранить проблему. Убедитесь, что он содержит следующие строки:RewriteEngine On RewriteBase /pages/ 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).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
Убедитесь, что директория
/pages/
существует на сервере и правильно настроена для вашего сайта. -
Проверьте файл
wp-config.php
:Убедитесь, что ваш файл
wp-config.php
правильно настроен для мультисайта, особенно строки, касающиеся адреса текущего сайта и пути:define('DOMAIN_CURRENT_SITE', 'www.example.com'); define('PATH_CURRENT_SITE', '/pages/');
Убедитесь, что это соответствует фактическому адресу вашего сайта.
-
Отключите объединение скриптов:
Для устранения проблем с загрузкой ресурсов отключите объединение скриптов, добавив следующую строку перед определением
ABSPATH
в файлеwp-config.php
:define('CONCATENATE_SCRIPTS', false);
-
Проверьте права доступа:
Убедитесь, что директории и файлы вашего WordPress имеют правильные права доступа. В идеале файловая система должна иметь права на запись для веб-сервера, чтобы не возникали проблемы с загрузкой стилей и скриптов.
-
Очистите кеш:
Если вы используете плагин кеширования, попробуйте очистить кеш. Также попробуйте открыть панель управления в режиме инкогнито браузера, чтобы исключить проблемы, связанные с кешем браузера.
-
Проверьте наличие конфликтов плагинов:
Временно отключите все плагины и активируйте стандартную тему WordPress, чтобы исключить возможность конфликтов, которые могут вызывать подобные проблемы.
Заключение
Убедитесь, что все настройки, которые я указал выше, выполнены правильно. Часто такие проблемы связаны именно с неправильной конфигурацией или настройками сервера. При соблюдении всех указанных шагов, проблема, вероятно, должна быть решена. Если по-прежнему будут проблемы, попробуйте обеспечить логирование ошибок, чтобы лучше понять, что случилось.