如何让 Wordpress JSON-API 在 Nginx 服务器上工作?

Posted

技术标签:

【中文标题】如何让 Wordpress JSON-API 在 Nginx 服务器上工作?【英文标题】:How do I get the Wordpress JSON-API to work on Nginx server? 【发布时间】:2015-08-03 11:41:42 【问题描述】:

由于某些原因,“开箱即用”的 Wordpress JSON API 无法在 nginx 上运行。我在 nginx conf 中尝试了几种重定向方案。我唯一需要工作的是?json。但是,这不适用于身份验证和注册。

作为一个仅供参考,我正在开发一个 cordova 应用程序并尝试将 WP JSON API 用于 WP 后端。

【问题讨论】:

任何抛出的错误?源代码? 我找到了答案,贴在下面。感谢您的提问! 【参考方案1】:

我找到了问题的解决方案。在您假设(像我一样)这是插件的问题之前,请确保永久链接正常工作。

我能够在 nginx 站点的子目录中更正 wordpress 站点的永久链接。如果您遇到同样的问题,本文将对您有所帮助here

【讨论】:

你永远不会怀疑最简单的事情,谢谢;节省了我很多时间! 对于那些想知道如何修复它的人:转到设置 => 永久链接 => 选择一个选项(我使用帖子名称)=> 保存更改 => 验证您的 /wp-json 路由是否有效跨度> web.archive.org/web/20170324103810/http://lawsonry.github.io/…【参考方案2】:

用于 wp-json API 的我的 Nginx conf。

location / 
    # http://v2.wp-api.org/guide/problems/#query-parameters-are-ignored
    try_files $uri $uri/ /index.php$is_args$args;


location ~ ^/wp-json/ 
    # if permalinks not enabled
    rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;

【讨论】:

奇怪的是,即使正确配置了永久链接,在某些环境中似乎也需要此解决方案。我不确定,可能是由于插件或主题代码的问题,或者浏览器本身的资源行为...wordpress.org/support/topic/contact-form-7-wp-json-404-error/… 我需要在我的 nginx.conf 中为我在 Amazon Linux 2 (AMI) 中运行的 wordpress 网站添加这个 至少在我的 Nginx 配置中仍然需要。现在,在 Gutenberg 中添加链接的搜索功能再次运行,无论我输入什么,它都只显示最新的帖子。谢谢。【参考方案3】:

我的案例是在我的网站根目录下的子目录上部署 wordpress,这是使其工作的步骤

    网站根目录是/www/wwwroot/www.abc.com/public/ - 通过www.abc.com访问 wordpress 目录是/www/wwwroot/www.abc.com/public/blog/ - 通过www.abc.com/blog/ 访问 下载wordpress并解压到你的web根目录,然后重命名为blog chmod -R www:www blog - 在您的 Web 根目录中运行此命令。 将以下行添加到您的 nginx 配置文件中。
location /blog/ 
  index index.php;
  try_files $uri $uri/ /blog/index.php?$args;

【讨论】:

以上是关于如何让 Wordpress JSON-API 在 Nginx 服务器上工作?的主要内容,如果未能解决你的问题,请参考以下文章

Ktor:如何序列化/反序列化 JSON-API (vnd.api+json)

dotnet core webapi json-api 兼容查询字符串路由

golang Go和MongoDB的JSON-API:最终部分

Access-Control-Allow-Origin - 尝试从 Wordpress 安装访问 JSON 时出错

Angular GET 请求错误,但仅在 Safari iOS 上

wordpress如何让自己的主题支持菜单功能