Вопрос или проблема
Я знаю, что admin-ajax.php предназначен для возврата ‘0’, если действие не установлено. Моя проблема, похоже, в том, что он возвращает ошибку после ‘0’.
Прямой доступ к файлу mu.site.com/wp-admin/admn-ajax.php
возвращает ‘0’, как и ожидалось.
Прямой доступ к файлу mu.site.com/sub-site/wp-admin/admn-ajax.php
возвращает ‘0 OK Сервер столкнулся с внутренней ошибкой или неправильной конфигурацией и не смог завершить ваш запрос. [ проверьте ваши журналы ошибок]”
Естественно, в моих журналах ошибок нет информации, хотя все источники говорят о том, что ведение журнала ошибок включено.
Возможно, это связано с тем, что у меня настроена многофайловая структура на подсайте?
Я впервые заметил проблему, потому что попытался загрузить файл через Медиа Библиотеку. Файл загружается на сервер (проверено по FTP), но я получаю общий “HTTP ошибка” в Медиа Библиотеке, и файлы не добавляются в базу данных WP. Я теперь заметил, что admin-ajax не работает по всей админке WP.
Вышеупомянутая ошибка также отображается на вкладке Сеть инструментов разработчика Chrome при загрузке.
Все работает как ожидается на моем основном сайте, это происходит только на моем вновь созданном подсайте. Я только что конвертировал установку одного сайта WP в многофайловую, так что подсайт не имеет другого контента / совершенно новый.
Отключение плагинов и использование стандартной темы не повлияло.
Настройка осуществляется на платформе “Веб-хостинг для Essentials (Hosting-Unix)” Network Solutions. Используется WordPress 4.7.3.
Я бы очень оценил любые ваши идеи!
Это не ответ на мой вопрос, но в итоге это стало обходным решением, которое я использовал.
Переход на многофайловую структуру подсайта.
Я сменил на mu.site.com/
и sub-site.site.com/
, обновил htaccess для работы с установкой на подсайте, и все начало работать. Я не знаю, почему многофайловая структура на подсайте вызвала проблему, но это так!
Ответ или решение
Решение проблемы с "0 200 OK" ошибкой в админ-ajax.php для мультисайтового WordPress на поддомене
Введение
Проблема, которую вы описали, связана с ошибками, возникающими при работе с файлом admin-ajax.php в вашей установке WordPress, работающей в режиме мультисайта с подкаталогами, находящимися на поддомене. Многие пользователи испытывают аналогичные трудности, и в этом ответе мы рассмотрим возможные причины и способы их устранения.
Описание проблемы
Вы упомянули, что при прямом доступе к файлу admin-ajax.php
на основном сайте (mu.site.com/wp-admin/admin-ajax.php
) вы получаете ожидаемое значение ‘0’. Однако при доступе к mu.site.com/sub-site/wp-admin/admin-ajax.php
возникает ошибка: 0 OK The server encountered an internal error or misconfiguration and was unable to complete your request
. Этот вывод подтверждает, что сервер не может успешно обработать запрос, что приводит к фатальной ошибке.
Основные симптомы:
- Ошибка при загрузке медиаматериалов с сообщением "HTTP error".
- Отсутствие информации в логах ошибок, несмотря на включенное логирование.
- Ошибки возникают только на под-сайте, созданном в мультисайтной сети.
Возможные причины ошибок
-
Неверная конфигурация .htaccess: Поскольку вы используете подкаталог для мультисайта, ошибки в файле .htaccess могут приводить к сбоям в маршрутизации запросов. Проверьте, правильно ли настроен ваш .htaccess для работы с мультисайтом. Для установки в подкаталог нужно использовать следующий шаблон:
RewriteEngine On RewriteBase /sub-site/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /sub-site/index.php [L]
-
Настройки сервера: Некоторые хостинг-провайдеры, такие как Network Solutions, могут иметь ограничения или специфические настройки, которые мешают правильному функционированию WordPress мультисайта с подкаталогами на поддоменах. Проверьте с вашим хостинг-провайдером, есть ли какие-либо ограничения на использование mod_rewrite или другие модули Apache.
-
Ошибки в конфигурации WordPress: После миграции с одиночного сайта на мультисайт, возможно, остались устаревшие записи в базе данных или конфигурационных файлах. Убедитесь, что вы правильно обновили настройку
siteurl
иhome
для под-сайта.
Рекомендации по устранению проблемы
-
Проверьте настройки .htaccess: Убедитесь, что он корректен, как указано выше, и не содержит лишних или ошибочных правил.
-
Обновите WordPress: У вас установлена версия 4.7.3, которая является устаревшей. Обновление WordPress до последней версии может устранить различные ошибки и несовместимости.
-
Проверка конфигурации базы данных: Убедитесь, что таблицы базы данных для вашего под-сайта корректно созданы и настроены. Проверяйте наличие нужных данных
wp_blogs
,wp_site
, и других таблиц. -
Используйте инструменты отладки: Включите режим отладки в WordPress, добавив следующие строки в файл wp-config.php:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Это позволит вам видеть ошибки в лог-файле debug.log, который находится в директории wp-content.
-
Тестирование с разными темами и плагинами: Хотя вы уже пробовали отключить плагины и переключиться на стандартную тему, улучшающие и проверяющие коды на совместимость с мультисайтом не повредят.
Заключение
К счастью, вы нашли временное решение, перейдя на мультисайт с поддоменами, но важно разобраться в исходной проблеме, чтобы избежать ее появления в будущем. Следуя приведенным выше рекомендациям и проверяя настройки конфигурации, вы сможете устранить возникшие ошибки и обеспечить бесперебойную работу всех функций вашего сайта WordPress.