Вопрос или проблема
Недавно настроил сеть WordPress с несколькими поддоменами. Domain.com/Sub-Domain Установка прошла успешно, подсайты работают, но я не могу получить доступ к панели администратора или любой другой странице/ссылке. Возвращает 404
Что я пробовал.
- Проверил файл WP-Config
define( 'WP_DEBUG_LOG', true );
define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'domain.domain.org' );
define( 'PATH_CURRENT_SITE', "https://wordpress.stackexchange.com/" );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
define( 'WP_POST_REVISIONS', 35);
define( 'WP_MEMORY_LIMIT', '3048M' );
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_DISPLAY', false );
define( 'SCRIPT_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . "https://wordpress.stackexchange.com/" );
Проверил файл htaccess
#Пример для подкаталога
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
#Пример для поддомена
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# добавляем слеш в конце для /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# BEGIN WordPress Multisite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# добавляем слеш в конце для /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress Multisite
Основной домен активен и работает нормально, но все панели администратора и страницы подсайтов выдают 404
Ответ или решение
Для решения проблемы с ошибкой 404 в админ-панелях поддоменов в вашей установке WordPress Multisite, сначала нужно проверить и скорректировать несколько ключевых аспектов. Вот пошаговое руководство по исправлению ошибки:
1. Проверьте файл wp-config.php
В вашем файле wp-config.php
есть несколько строк, которые требуют проверки. Убедитесь, что у вас правильные значения, особенно для следующих констант:
define( 'DOMAIN_CURRENT_SITE', 'domain.com' ); // Замена на ваш основной домен
define( 'PATH_CURRENT_SITE', '/' ); // Если ваш сайт находится прямо в корне
define('SUBDOMAIN_INSTALL', true ); // Это должно быть true, если вы используете поддомены
Убедитесь, что DOMAIN_CURRENT_SITE
соответствует вашему основному домену, а PATH_CURRENT_SITE
— пути, где установлен WordPress.
2. Проверьте файл .htaccess
Убедитесь, что файл .htaccess
корректно настроен для работы с поддоменами и включает правильные правила переписывания. Пример корректного содержимого:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress
Если вы используете поддомены, убедитесь, что у вас включен модуль mod_rewrite
на сервере, и что файл .htaccess
находится в корневом каталоге вашего сайта.
3. Проверьте настройки DNS
Убедитесь, что все поддомены корректно настроены в ваших DNS-записях. Каждому поддомену должно соответствовать правильное A-запись, указывающее на IP-адрес вашего сервера.
4. Проверьте конфигурацию сервера
Иногда проблема может возникать из-за конфигурации самого сервера. Если вы используете Apache, проверьте, что модуль mod_rewrite
включен:
sudo a2enmod rewrite
sudo service apache2 restart
5. Отключите плагины и темы
Попробуйте временно отключить все плагины и переключите тему на стандартную (например, Twenty Twenty-One), чтобы исключить возможность конфликтов, вызывающих 404 ошибку.
6. Проверьте логи сервера
Если проблема сохраняется, рассмотрите возможность проверки логов ошибок вашего сервера. Это может дать больше информации о том, что вызывает 404 ошибку.
7. Включите отладку
Для дальнейшего выяснения проблемы, включите отладку (если она еще не включена) в файле wp-config.php
:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Это создаст файл debug.log
в каталоге wp-content
, где вы сможете просмотреть подробные ошибки.
Заключение
Следуя вышеуказанным шагам, вы должны быть в состоянии устранить ошибку 404 в админ-панелях поддоменов вашего WordPress Multisite. Обязательно проверяйте каждый шаг и корректируйте настройки в зависимости от конфигурации вашего сервера и особенностей вашего хостинга. Если ошибки продолжаются, рекомендуется обратиться к технической поддержке вашего хостинга для дополнительной помощи.