Wordpress JsonAPI - 在此服务器上找不到 /wp-json/
Posted
技术标签:
【中文标题】Wordpress JsonAPI - 在此服务器上找不到 /wp-json/【英文标题】:Wordpress JsonAPI - /wp-json/ was not found on this server 【发布时间】:2014-07-13 13:56:46 【问题描述】:我正在使用以下插件Json Rest API。
要测试插件,documentation 声明我应该只使用:
$ 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 有问题,有什么建议吗?
感谢您的回复
【问题讨论】:
您是否启用了pretty permalinks? @brasofilo 感谢您的回答!是的,我有;( 【参考方案1】:WordPress JSON API depends on pretty permalinks,请确保您已为网站启用它们。
【讨论】:
aka - 转到 Settings > Permalinks 并将设置更改为 "Post name" 以使其适合您。如果您已经有一个实时站点,我会谨慎执行此操作,因为它会修改您的很多网址。 但是请看@Mohammad AlBanna ***.com/a/57403026/516537的评论【参考方案2】:如果你已经正确安装了插件,一定要刷新重写规则。
这可以通过 wp-cli 来完成:http://wp-cli.org/commands/rewrite/flush/
【讨论】:
【参考方案3】:当前版本的 REST api 用于未启用漂亮永久链接的网站,url
yoursite.com/?rest_route=/
会起作用的。
【讨论】:
@Foad 它需要启用永久链接 @DrDeo 看看***.com/questions/18352682/… 可能值得注意的是,无论是否启用永久链接,此 url 都可以使用,所以如果您无法知道,那么这是更安全的选择【参考方案4】:就我而言,在我的本地 linux 机器上安装/配置 apache2 后出现此错误。我终于发现错误是由于我使用修复的重写模块未启用引起的,
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服务,问题就解决了。
【讨论】:
如果你有 Bluehost 作为服务器怎么办? 您需要联系您的支持人员以获取 apache 配置文件。 Bluehost 无法让您轻松访问这些文件。 谢谢!它有效!【参考方案5】:我已经多次遇到这个问题。解决办法是这样的:
登录您的 Wordpress 网站:example.com/wp-admin
然后点击设置
然后点击永久链接
然后将永久链接设置为“post-name”
保存更改
【讨论】:
但是请看@Mohammad AlBanna ***.com/a/57403026/516537的评论【参考方案6】:我在 localhost 子域的本地开发环境中运行 WP(例如 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>
【讨论】:
【参考方案7】:有时解决方案既疯狂又简单!通过移动到Admin -> Settings -> Permalinks
转到永久链接设置...然后直接点击Save Changes
而不做任何其他事情!这刷新了 WordPress 的记忆。
这是为什么呢?对于我之前遇到的情况,我更改了主网站 URL,因此我也必须刷新永久链接。
【讨论】:
我认为这只是你的情况,可能更重要的是你选择了什么,也许是“帖子名称” @MaxCarroll 这个解决方案也对我有用。我认为刷新/重置引用更为重要。即使没有进行视觉更改,单击“保存更改”也会影响数据库。【参考方案8】:我遇到了同样的问题,想发布我的解决方案,以防其他人遇到这个答案而其他答案不能解决问题,因为这发生在我身上。
就我而言,我没有带有 Wordpress 默认 mod_rewrite
规则的 .htaccess
文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>
这为我解决了这个问题。根据documentation:
WordPress 使用此文件来操纵 Apache 如何从 它的根目录及其子目录。最值得注意的是,WP 修改此文件以能够处理漂亮的永久链接。
【讨论】:
【参考方案9】:遇到了类似的问题,原来 Apache 的 mod_rewrite 模块没有启用。启用后工作正常。
【讨论】:
【参考方案10】:对我来说,这个问题是由于 WP 站点是在临时 URL(即 example.com)的根目录下开发的,但是当它上线时它安装在一个子目录中(即 example.org/wp)
在我可以使the suggestion from this comment 工作之前,我必须chmod 664 .htaccess
使它可以被 Wordpress 写入。然后我按照建议重新保存了永久链接,Wordpress 将 .htaccess 中的 RewriteBase
更新为 /wp
【讨论】:
以上是关于Wordpress JsonAPI - 在此服务器上找不到 /wp-json/的主要内容,如果未能解决你的问题,请参考以下文章
centos wordpress 在此服务器上未找到请求的 URL,