如何让 Wordpress JSON-API 在 Nginx 服务器上运行?

How do I get the Wordpress JSON-API to work on Nginx server?

出于某种原因 "out-of-the-box" Wordpress JSON API 无法在 Nginx 上运行。我在 nginx conf 中尝试了几种重定向方案。我唯一开始工作的是 ?json。但是,这不适用于身份验证和注册。

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

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

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

我的 wp-json API.

的 Nginx 配置文件
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=/ last;
}

我的案例是将 wordpress 部署到我网站根目录下的一个子目录中,这里是让它工作的步骤

  1. 网站根目录是/www/wwwroot/www.abc.com/public/ - 通过www.abc.com
  2. 访问
  3. wordpress 目录是 /www/wwwroot/www.abc.com/public/blog/ - 通过 www.abc.com/blog/
  4. 访问
  5. 下载 wordpress 并将其解压缩到您的网站根目录,然后将其重命名为 blog
  6. chmod -R www:www blog - 运行 在您的网络根目录中执行此命令。
  7. 将以下行添加到您的 nginx 配置文件中。
location /blog/ {
  index index.php;
  try_files $uri $uri/ /blog/index.php?$args;
}