Исправление ошибки WoprdPress и NGINX :
«Запрос к REST API завершился с неожиданным результатом: (404)»
«Ответ не является допустимым ответом JSON.»
Если вы устанавливали 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» (я с таким не сталкивался и описать рабочее решение для этого случая не могу)
Спасибо за внимание!