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 中)将其&lt;Directory&gt; 指令“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 -&gt; Settings -&gt; 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/的主要内容,如果未能解决你的问题,请参考以下文章

在此服务器上找不到 Jquery。 WordPress

centos wordpress 在此服务器上未找到请求的 URL,

用微信小程序连接WordPress网站

Wordpress JSON api 获取所选项目

没有 html 标签的 Wordpress Restful Api

jQuery Mobile 中来自 Wordpress JSON 的新闻页面