Устраняем ошибку WoprdPress: — «REST API выдал неожиданный результат» или «Ответ не является допустимым ответом JSON». NGINX.

+2

Исправление ошибки WoprdPress и NGINX :

«Запрос к REST API завершился с неожиданным результатом: (404)»

«Ответ не является допустимым ответом JSON.»

Устраняем ошибку WoprdPress: - "REST API выдал неожиданный результат" или "Ответ не является допустимым ответом JSON". NGINX.

Если вы устанавливали WoprdPress по моей статье «Простая установка WordPress на Ubuntu / Debian c HTTPS (SSL) с помощью Docker Compose и LinuxServer SWAG.» и у вас появилась ошибка «REST API выдал неожиданный результат» во вкладке «Состояние здоровья сайта» или «Ответ не является допустимым ответом JSON» при публикации новой записи или редактировании ранее опубликованной, то вам нужно добавить одну строчку в файл default находящийся по пути /home/ubuntu/config/nginx/site-confs и перезапустить контейнер SWAG (linuxserver/swag) в Portainer.

  location / {try_files $uri $uri/ /index.html /index.php?$args;}

Об этом, «черным по белому», написано в документации WordPress на этой странице. Но если вы пришли в поисках сюда, значит не читали её, как и я ))

Точно так же, если вы установили WordPress в операционную систему Ubuntu или Ubuntu Server с Nginx, не с помощью с помощью Docker Compose, а другим способом, например стеком LEMP (Linux, Nginx, MySQL, PHP), то эту сточку нужно добавить или изменить, но возможно в другом файле конфигурации Nginx.

Итак, если при попытке добавить новую статью или отредактировать старую вы увидите такую ошибку:

Ошибка публикации. Сообщение об ошибке: Ответ не является допустимым ответом JSON.

Кроме того, если перейдёте на экран «Здоровье сайта» (/wp-admin/site-health.php), то увидите надпись:

Запрос к REST API завершился с неожиданным результатом: (404) <html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.18.0</center> </body> </html> .

REST API выдал неожиданный результат

То вам необходимо отредактировать файл конфигурации Nginx — ВашСайт.conf. Находится он (скорее всего) по пути /etc/nginx/sites-enabled/ВашСайт.conf. Замените в нём стандартные строки:

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

на:

        location / {try_files $uri $uri/ /index.php?$args;}
или 
        location / { try_files $uri $uri/ /index.php$is_args$args;}
или
        location / { try_files $uri $uri/ /index.php?q=$uri&$args;}

Затем перезапустить сервер Nginx чтобы применить изменения:

nginx -tsudo service nginx restart

После этого проверить, что ошибки исчезли.

Проблема с постоянными ссылками ЧПУ

Изменить адреса ссылок WordPress с такого вида http://сайт.com/?p=123 на такой http://сайт.com/название-публикации/ можно по пути «Настройки» — «Постоянные ссылки», но иногда после этого возможны проблемы:

«Установил WordPress, ссылки у страниц не были переведены в ЧПУ, а имели стандартный вид ?p=123. Если изменить настройки постоянных ссылок на произвольные (/%postname%/), то страницы становятся недоступны (ошибка 404).«

«На моём сайте WordPress после изменения пункта «Простые» по пути «Настройки» — «Постоянные ссылки» на «Произвольно» или «Название записи« перестали открываться страницы. А именно, при открытии любой из страниц отображается такая ошибка: «Not Found The requested URL /page was not found on this server

Если вы столкнулись с похожей проблемой и у вас WordPress + Ubuntu + Nginx, то решение этой проблемы полностью аналогично описанной выше правке файла конфигурации Nginx.

Если проблема не будет решена, то значит у вас другой случай — «гуглите» решение «чпу wordpress .htaccess» (я с таким не сталкивался и описать рабочее решение для этого случая не могу)

Спасибо за внимание!

+2

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх