几个月来,我一直在使用Wordpress REST插件WP-API,同时使用XAMPP进行本地开发 . 我最近将我的站点迁移到EC2实例,一切正常 except 每当我尝试访问API上的任何 endpoints 时,我现在得到一条带有以下消息的404:
在此服务器上找不到请求的URL / wordpress / wp-json /
Pretty permalinks are enabled 具有以下结构 http://.../wordpress/sample-post/
,在导航到浏览器中的特定帖子时可以正常工作 .
以下是有关我的设置的一些细节:
-
Wordpress 4.4.1
-
Not a Multisite
-
WP REST API插件2.0-beta9
-
Apache 2.2.22
-
Ubuntu 12.04.5
任何帮助将不胜感激,因为我已经经历了几个小时的SO和WP支持论坛并且没有想法 . 谢谢!
6 回答
在WPEngine和WP 4.9.2上,我只需更新永久链接即可获得新安装的新站点以返回v2 API调用 . 我做了什么:
创建网站
浏览http://yoursitename.wpengine.com/wp-json/wp/v2/posts
得到404
转到管理员,设置,永久链接,选择"Post Name"
点击"Save Changes"
浏览至http://yoursitename.wpengine.com/wp-json/wp/v2/posts
成功 . 页面显示JSON响应
I had to manually make a .htaccess, set it to chmod 664, and copy the permalink rules into it.
我也玩过
设置>永久链接
点击"Save"后,通过永久链接页面底部的代码手动更新.htaccess
添加"index.php"作为其他答案之一表明
确保
mod rewrite
已通过a2enmod
启用我最新的WordPress 4.7遇到了这个问题 . 在我的情况下,REST API仅在我将永久链接设置更改为“Plain”以外的其他设置后才起作用,这是我的安装的默认设置 .
我已经将WordPress安装从子目录移动到另一个子目录,所以在我的情况下问题是由于
.htaccess
文件中的WordPress配置 . 它试图将每个页面重定向到主目录 . 这只是一个将olddir
更新为newdir
的问题......这让我不止一次绊倒,所以我想我会把它放在这里......UPDATED NEW WAY
我在本地项目中也遇到过类似的问题 . I used index.php after my project url 并且它奏效了 .
If it displays a 404 error then update permalinks first (见"Paged Navigation Doesn't Work"部分
如果它有效,也许你需要在ubuntu上启用
mod_rewrite
:安装
如果你在4.7之前:
从这里下载插件:http://v2.wp-api.org/
安装并激活它 .
用法
获取所有帖子:
对于搜索功能,搜索测试帖子如下所示:
结果证明Apache配置存在问题 .
首先,我删除了根wordpress目录中的
.htaccess
文件 .接下来,我导航到
/etc/apache2/sites-enabled
并打开000-default
所有
AllowOverride
变量都设置为None,我将其替换为All
.这就是诀窍!