dsa*_*951 35 wordpress wordpress-plugin wp-api wordpress-rest-api
几个月以来,我一直在使用Wordpress REST插件WP-API,同时使用XAMPP进行本地开发.我最近将我的站点迁移到EC2实例,一切正常,但每当我尝试访问API上的任何端点时,我现在都会收到带有以下消息的404:
在此服务器上找不到请求的URL/wordpress/wp-json /
使用以下结构启用漂亮的固定链接http://.../wordpress/sample-post/,在浏览器中导航到特定帖子时可以正常工作.
以下是有关我的设置的一些细节:
任何帮助将不胜感激,因为我已经通过SO和WP支持论坛几个小时,我的想法.谢谢!
Jit*_*pat 97
更新的新方式
我在本地项目中也遇到过类似的问题.我index.php在我的项目网址之后使用它并且它有效.
http://localhost/myproject/index.php/wp-json/wp/v2/posts
Run Code Online (Sandbox Code Playgroud)
如果它显示404错误,则首先更新永久链接(请参阅"分页导航不起作用"部分
如果它有效,也许你需要mod_rewrite在ubuntu 上启用:
a2enmod rewrite
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
REST API包含在WordPress 4.7中!不再需要插件,只需安装最新版本的WordPress即可开始使用.
如果您在4.7之前:
从这里下载插件:http://v2.wp-api.org/
安装并激活它.
获取所有帖子:
www.mysite.com/wp-json/wp/v2/posts
Run Code Online (Sandbox Code Playgroud)
对于搜索功能,搜索测试帖子如下所示:
/wp-json/wp/v2/posts?filter[s]=test
Run Code Online (Sandbox Code Playgroud)
Ana*_*aja 18
首先,您必须检查 WordPress REST API是否已启用
\n最好的检查方法是访问此 URL:https://yoursite.com/wp-json。\n如果您看到一些 JSON 响应,则表明 REST API 已启用。\n如果\xe2\x80\x99s 显示一些错误页面或返回主页,则表明 REST API 未启用。然后我们必须先启用它。
在这种情况下,您必须启用固定链接
\nhttps://yoursite.com/wp-json)https://yoursite.com/wp-admin/options-permalink.php).htaccess请参阅下面的帮助屏幕截图:
\n\n\n\nAnd*_*rts 17
在WPEngine和WP 4.9.2上,我只需更新永久链接即可获得新安装的新站点以返回v2 API调用.我做了什么:
dsa*_*951 14
结果证明Apache配置存在问题.
首先,我删除.htaccess了根wordpress目录中的文件.
接下来,我导航/etc/apache2/sites-enabled并打开000-default
所有AllowOverride变量都设置为None,我将其替换为All.
这就是诀窍!
小智 9
这是文件权限错误,应用以下解决方案:
编辑此文件 将权限从“无”/etc/apache2/apache2.conf
更改/var/www/为“全部” 重新启动apache2服务器。
我通过以下步骤解决了这个问题:
导航到 ..\Apache24\conf\httpd.conf 并搜索LoadModule rewrite_module modules/mod_rewrite.so.
通过删除标记来启用重写模块#。
AllowOverride None将的所有情况替换为AllowOverride All。
不要忘记重新启动 apache 服务器。:)
通过 SSH 将“AllowOverride All”(正如其他作者之前所暗示的那样)添加到我的 Ubuntu 服务器上的 apache 虚拟主机配置中,这对我来说是成功的:
sudo vi /etc/apache2/sites-available/my-website-name.com.conf
Run Code Online (Sandbox Code Playgroud)
另外(如果您使用 LetsEncrypt):
sudo vi /etc/apache2/sites-available/my-website-name.com-le-ssl.conf
Run Code Online (Sandbox Code Playgroud)
这些文件应该如下所示:
<VirtualHost *:80>
# or <VirtualHost *:443> for the SSL configuration
# [...]
DocumentRoot /var/www/my-website-name.com/public_html
<Directory "/var/www/my-website-name.com/public_html">
# this allows .htaccess files (e.g. generated by Wordpress)
# to overwrite the apache configuration on a directory basis:
AllowOverride All
</Directory>
# [...]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
不要忘记禁用并重新启用站点并重新加载 apache 以应用新配置:
sudo a2dissite my-website-name.com.conf
sudo a2dissite my-website-name.com-le-ssl.conf
sudo a2ensite my-website-name.com.conf
sudo a2ensite my-website-name.com-le-ssl.conf
sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)
在 WordPress 6 上
您可以使用此 URL,无需URL Rewrite也无需更改您的Permalink settings(我看到古腾堡编辑器正在使用此 URL 访问 REST)
http://example.com/index.php?rest_route=/wp/v2/posts
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59845 次 |
| 最近记录: |