因为某种原因,“开箱即用”的WordPress JSON API在Nginx上无法工作。我尝试了nginx配置文件中的多个重定向方案。唯一有效的是?json
。但是,这对于身份验证和注册无效。
顺便说一下,我正在开发一个Cordova应用程序,并尝试使用WP JSON API进行WP后端处理。
因为某种原因,“开箱即用”的WordPress JSON API在Nginx上无法工作。我尝试了nginx配置文件中的多个重定向方案。唯一有效的是?json
。但是,这对于身份验证和注册无效。
顺便说一下,我正在开发一个Cordova应用程序,并尝试使用WP JSON API进行WP后端处理。
我的 Nginx 配置用于 wp-json API。
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,以下是使其正常工作的步骤:
/www/wwwroot/www.abc.com/public/
- 可通过 www.abc.com
访问/www/wwwroot/www.abc.com/public/blog/
- 可通过 www.abc.com/blog/
访问blog
chmod -R www:www blog
- 在您的网站根目录中运行此命令。location /blog/ {
index index.php;
try_files $uri $uri/ /blog/index.php?$args;
}
location /<subdir>/ {
index index.php;
try_files $uri $uri/ /<subdir>/index.php?$args;
}
现在重新启动Nginx服务器
sudo systemctl restart nginx
location / {
try_files $uri $uri/ /index.php?$args;
}
添加后,请使用以下命令检查Nginx配置
$ sudo nginx -t
然后如果一切正常,重新加载服务器
$ sudo systemctl reload nginx.
#fix Woocommerce New Customer's activation link (embeded in welcome email)
rewrite ^/wp-json(.*)$ /index.php?rest_route=$1 permanent;
location / {
#Forward all request to index.php
try_files $uri $uri/ /index.php$is_args$args;
}
location {}
之外,并且在索引重定向之上。