【问题标题】:How do I configure nginx for WordPress REST API in sub-folder?如何在子文件夹中为 WordPress REST API 配置 nginx?
【发布时间】:2019-11-17 16:23:56
【问题描述】:

我正在尝试在我们域下的子文件夹中设置多个 Wordpress 站点(即不是多站点),但我在配置 REST API 端点时遇到了困难。例如,此端点工作正常:

https://example.com/site1/?rest_route=/wp/v2/posts

但是这个端点给出了 404:

https://example.com/site1/wp-json/wp/v2/posts

我尝试在我的 nginx 配置中使用这些规则将失败的 url 重写为工作 url:

location /site1/wp-json {
    rewrite ^/site1/wp-json(.*)$ /site1/?rest_route=$1;
}

location /site1/ {
   try_files $uri $uri/ /site1/index.php$is_args$args;
}

我在WordPress docsnginx wiki 中看不到对 wp-json 的任何特殊处理。我在这里想念什么?该网站的永久链接设置为Numeric (https://example.com/site1/archives/123),如果这可能起作用的话。

更新

编辑 full config file 的要点和配置语法 lints 没问题:

nginx -c /etc/nginx/nginx.conf -t

nginx:配置文件/etc/nginx/nginx.conf 语法没问题
nginx:配置文件/etc/nginx/nginx.conf 测试成功

【问题讨论】:

  • 你能显示完整的配置吗?
  • 我已经看到了最后一个标志的重写行。也许这就是缺少的东西?
  • 谢谢@TarunLalwani 我刚刚尝试添加最后一个并重新排列两个重写规则的顺序,但它没有修复 404
  • @JannieTheunissen,我希望看到完整的配置能够对某些内容发表评论。目前,只有这两行对我没有帮助
  • 即将发布的完整配置要点。我只需要在里面编辑一堆东西

标签: wordpress wordpress-rest-api nginx-config


【解决方案1】:

我认为rewrite指令应该写成如下图:

server {
    location /site1/wp-json
        {
            rewrite ^(/site1/wp-json.*)$ /site1/?rest_route=$1 last;
        }
}

【讨论】:

  • 感谢法哈姆。我尝试了您的解决方案,但它不起作用。
  • 您能否通过在终端中运行nginx -c /etc/nginx/nginx.conf -t 来发布结果。
  • @JannieTheunissen 您的 /etc/nginx 中应该有一个启用站点的文件夹,您可以检查那里是否有任何配置文件吗?如果是这样,请在该文件中添加配置。
  • 有两个包含的配置,我已将它们合并到 gist 中以获得全貌
  • 我知道这是一个非常愚蠢的问题,但是在考虑了您的配置文件几个小时之后,我只剩下最愚蠢的问题了。您的网站永久链接设置是什么?
【解决方案2】:

我能够像这样解决它:

location /wordpress/ {
  rewrite ^/wordpress/wp-json/(.*?)$ /wordpress/index.php?rest_route=/$1 last;
}

【讨论】:

    【解决方案3】:

    一个简单的方法如果您的子文件夹中的网站页面已经在工作,只需将 index.php 添加到 url:

    https://site1.com/site2/index.php/wp-json/
    

    如果您的网站页面在子文件夹中仍然无法使用,请将此代码也添加到 nginx/sites-available/website.conf 文件中:

    location /site2 {
            rewrite ^(/[^/]+)?(/wp-.*) /site2/$2 break;
            rewrite ^/site2/(.*)$ /site2/index.php?q=$1 last;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-03
      • 2017-05-30
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      相关资源
      最近更新 更多