Wordpress REST API (wp-api) 404 错误:无法访问 WordPress REST API

问题描述 投票:0回答:7

我已经使用 WordPress REST 插件 WP-API 几个月了,同时使用 XAMPP 进行本地开发。 我最近将我的网站迁移到了 EC2 实例,一切都工作正常 除了 现在,每当我尝试访问 API 上的任何端点时,我都会收到带有以下消息的 404:

在此服务器上找不到请求的 URL /wordpress/wp-json/

启用了漂亮的永久链接,具有以下结构

http://.../wordpress/sample-post/
,在浏览器中导航到特定帖子时效果很好。

以下是有关我的设置的一些详细信息:

  • WordPress 4.4.1
    • 不是多站点
  • WP REST API插件2.0-beta9
  • 阿帕奇2.2.22
  • Ubuntu 12.04.5

任何帮助将不胜感激,因为我已经浏览了SO和WP支持论坛几个小时并且没有想法。 谢谢!

wordpress apache .htaccess wordpress-rest-api wp-api
7个回答
199
投票

更新了新方式

我在本地项目中也遇到了类似的问题。 我在我的项目 url

 之后使用了 
index.php 并且它有效。

http://localhost/myproject/index.php/wp-json/wp/v2/posts

如果显示 404 错误,则首先更新永久链接(请参阅“分页导航不起作用”部分

如果有效,也许你需要在 ubuntu 上启用

mod_rewrite

a2enmod rewrite
sudo service apache2 restart

安装

REST API 包含在 WordPress 4.7 中!不再需要插件,只需安装最新版本的 WordPress 即可开始使用。

如果您是 4.7 之前的版本:

  1. 从这里下载插件:http://v2.wp-api.org/

  2. 安装并激活它。

使用方法

获取所有帖子:

www.mysite.com/wp-json/wp/v2/posts

对于搜索功能,搜索测试帖子如下所示:

/wp-json/wp/v2/posts?filter[s]=test

55
投票

我在使用最新的 WordPress 4.7+ 时遇到了这个问题。就我而言,REST API 仅在我将永久链接设置更改为“Plain”(我的安装的默认设置)之外的其他内容后才起作用。


53
投票

在 WPEngine 和 WP 4.9.2 上,我只需更新永久链接即可获取新安装的站点以返回 v2 API 调用。我做了什么:

  1. 创建网站
  2. 浏览至 http://yoursitename.wpengine.com/wp-json/wp/v2/posts
    • 获取404
  3. 转到管理,设置,永久链接,选择“帖子名称”
  4. 单击“保存更改”
  5. 浏览至 http://yoursitename.wpengine.com/wp-json/wp/v2/posts
    • 成功。页面显示 JSON 响应

25
投票

原来是Apache配置的问题。

首先,我删除了wordpress根目录中的

.htaccess
文件。

接下来,我导航到

/etc/apache2/sites-enabled
并打开
000-default

所有

AllowOverride
变量均设置为 None,我将其替换为
All

就这样成功了!


19
投票

首先您必须检查 WordPress REST API 是否已启用

最好的检查方法是访问此 URL:

https://yoursite.com/wp-json
。 如果您看到一些 JSON 响应,则表明 REST API 已启用。 如果显示一些错误页面或返回主页,则表明 REST API 未启用。然后我们必须先启用它。

在这种情况下,您必须启用永久链接

  1. 访问您页面的管理页面(访问
    https://yoursite.com/wp-json
  2. 设置 > 固定链接(访问
    https://yoursite.com/wp-admin/options-permalink.php
  3. 确保未选择“普通”
  4. 选择帖子名称(最好的)
  5. 然后单击“保存更改”。这将重写/修复你的
    .htaccess

请参阅下面的帮助屏幕截图:

Permalinks

choosing Post Name

来源


16
投票

是文件权限错误,应用以下解决方案

编辑此文件

/etc/apache2/apache2.conf
/var/www/
权限从“无”更改为“全部” 重新启动
apache2
服务器。


6
投票

我通过以下步骤解决了这个问题:

  1. 导航到..\Apache2

© www.soinside.com 2019 - 2024. All rights reserved.