Ответ 1
Текущая версия REST api для сайтов с довольно постоянными ссылками не включена, URL
yoursite.com/?rest_route=/
будет работать.
Я использую следующий плагин Json Rest API.
Для тестирования плагина в документации указано, что я должен просто использовать:
$ curl -i http://testpress-maxximus.rhcloud.com/wp-json/
HTTP/1.1 404 Not Found
Date: Sat, 24 May 2014 07:01:21 GMT
Server: Apache/2.2.15 (Red Hat)
Content-Length: 303
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /wp-json/ was not found on this server.</p>
<hr>
<address>Apache/2.2.15 (Red Hat) Server at testpress-maxximus.rhcloud.com Port 8
0</address>
</body></html>
Как вы можете видеть, URL-адрес не найден. Любые рекомендации, если есть проблема с API или wordpress?
Я ценю ваш ответ
Текущая версия REST api для сайтов с довольно постоянными ссылками не включена, URL
yoursite.com/?rest_route=/
будет работать.
API WordPress JSON зависит от довольно постоянных ссылок, убедитесь, что вы включили их для сайта.
В моем случае я получил эту ошибку после установки/настройки apache2 на моем локальном компьютере с Linux. В конце концов я обнаружил, что ошибка вызвана тем, что модуль перезаписи не включен, что я исправил с помощью,
sudo a2enmod rewrite
а также гарантируя, что мой файл apache2.conf (расположенный в папке /etc/apache2) имеет директиву <Directory>
'AllowOverride', установленную для всех, а не для всех, из
<Directory/var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
в
<Directory/var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
затем я перезапустил службу apache2 и проблема была решена.
Я сталкивался с этой проблемой несколько раз. Решение заключается в следующем:
Войдите на свой сайт Wordpress: example.com/wp-admin
Затем нажмите Настройки
Затем нажмите постоянные ссылки
Затем установите постоянные ссылки на "post-name"
.Сохранить изменения
Иногда решение сумасшедшее и простое! перейдите к настройкам постоянной ссылки, перейдя в Admin -> Settings -> Permalinks
... затем просто нажмите Save Changes
, ничего не делая! Это освежает память WordPress.
Почему это? Для ситуации, с которой я столкнулся ранее, я изменил URL основного веб-сайта, поэтому мне также пришлось обновить постоянные ссылки.
Если вы правильно установили плагин, обязательно запустите правила перезаписи.
Это можно сделать с помощью wp-cli: http://wp-cli.org/commands/rewrite/flush/
Я запускал WP в локальной среде разработчика в поддомене localhost (например, mysite.localhost: 8888)
Решением для меня было обновить конфигурацию виртуального хоста в httpd-vhosts.conf, чтобы установить параметры каталога, аналогично ответу Aurovrata:
<VirtualHost *:8888>
ServerName mysite.localhost
DocumentRoot "/Users/myusername/mysite"
<Directory /Users/myusername/mysite>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
У меня возникла та же проблема, и я хотел опубликовать свое решение на тот случай, если кто-нибудь еще столкнется с этим ответом, а другие ответы не решат проблему, как это случилось со мной.
В моем случае у меня не было файла .htaccess
с правилами WordPress по умолчанию mod_rewrite
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Это решило проблему для меня. Согласно документации:
WordPress использует этот файл для управления тем, как Apache обслуживает файлы из его корневой каталог и его подкаталоги. В частности, WP изменяет этот файл, чтобы иметь возможность обрабатывать красивые постоянные ссылки.