WordPress и REST API (ошибка 404 и борьба с ней)

Предыстория

Началось с того, что я решил таки доделать свой сайт. В качестве движка выбрал WordPress, установил всё на свой сервер на базе стэка Turnkey LAMP. Все шло как по маслу ровно до того момента пока я не зашел в настройки постоянных ссылок и не выбрал опцию «Название записи». После этого при попытке опубликовать или обновить страницу WordPress выдавал ошибку «Ответ не является допустимым ответом JSON». И с этого момента началось увлекательное путешествие в мир поиска решения проблемы в Google…

Бескрайние просторы интернета

Вбив в строку поиска Google фразу «WordPress ответ не является допустимым ответом json» начал по очереди тыкать по ссылкам в результатах поиска. Чего там только не было… сотни советов от сотни советчиков. Тестирование сайта с помощью плагина «Health Check & Troubleshooting» показало, что проблема кроется в REST API. Поиск уже по этой проблеме снова привел к еще сотне различных проблем и вариантов их решения — начиная от «какой-то плагин запретил REST API, удалите его», заканчивая «установите плагин Classic Editor и будет вас счастье». Установка WordPress чистая, ни одного плагина кроме «Health Check & Troubleshooting» нет, значит проблема точно не в этом. Ставить классический редактор я тоже не хотел, потому что какого хрена! Все должно работать, проблема не в плагинах.

Ларчик просто открывался

В итоге, после длительных блужданий среди гор бесполезной информации, я вдруг натыкаюсь на ранее неизвестный мне сайт overcoder.net, на котором человек задал вопрос по данной ошибке. Ему ответил какой-то добрый человек, что возможно у него не включен модуль Apache mod_rewrite… Я полез в настройки своего Apache и обнаружил, что он таки не включен! Мне хотелось пожать ему руку, этому замечательному человеку! После включения модуля нужно было ещё полезть в настройки виртуального сервера и прописать директивы Options Indexes FollowSymLinks и AllowOverride all. Всё! В моем случае это выглядит так:

DocumentRoot /var/www/shurgent.pp.ua
<Directory "/var/www/shurgent.pp.ua">
allow from all
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
ServerName shurgent.pp.ua

То есть просто нужно было включить модуль mod_rewrite и прописать директивы! Всего-то! Ну и, разумеется, перезапустить Apache.

Надеюсь эта статья поможет кому-то неопытному, вроде меня, избежать подобных сложностей при установке нового WordPress. Всем бобра!

Добавить комментарий

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