Wordpress. IIS. Произошла ошибка. Ответ не является допустимым ответом JSON.
Перейти к навигации
Перейти к поиску
Собственно ошибка: "Произошла ошибка. Ответ не является допустимым ответом JSON" может быть по двум (известным мне) причинам:
1. Не настроен или не правильно настроен rewrite, в IIS проверяем файл web.conf в корне сайта, в нем должен быть примерно такой блок rewrite:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="WordPress" patternSyntax="Wildcard"> <match url="*"/> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> </conditions> <action type="Rewrite" url="index.php"/> </rule> </rules> </rewrite> </system.webServer> </configuration>
Если wordpress лежит во вложенной папке сайта, например /mywp/, то в корневом web.conf добавляется блок rule:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="mywp" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{URL}" pattern="/mywp/*" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="/mywp/index.php" /> </rule> <rule name="WordPress" patternSyntax="Wildcard"> <match url="*"/> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> </conditions> <action type="Rewrite" url="index.php"/> </rule> </rules> </rewrite> </system.webServer> </configuration>
2. Добавили в разрешённые методы GET, POST, HEAD, OPTIONS, PATCH
В обработчике php FastCGI обычно разрешено только GET, POST, мне хватило разрешить GET, POST, HEAD, OPTIONS, PATCH. Возможно понадобятся еще PUT, DELETE
Настраивается тут:
Диспетчер службы IIS -> WEB -> сайты -> имя_сайта
Затем заходим в:
Сопоставление обработчиков -> PHP8.1_via_FastCGI -> Ограничения запроса -> Команды
Настройка php FastCGI описана тут. Там почти все правильно :)