如果你的站点是从子目录运行WordPress,同时,若Web服务器,比如Nginx,尚未为REST API正确配置处理路由,那么当访问 https://www.yourdomaim.com/subdirectory/abc/wp-json/ 时则可能会遇到404错误。
相信大多数人,都没有注意到在子目录下运行Wordprress会出现这样的问题。因为,Wordpress官方的安装手册完全忽略了在子目录安装并同时启用了固定链接的情况。
下面我们来说一下
Permalinks REST API Rewrite Rule
你可以通过在Nginx网站配置中使用一个简单的重写规则来解决这个问题。你也可以对Apache执行相同的操作,但是您必须找出正确的重写条件,以确保您不会重写所有内容。
假设你有服务器管理权限,与我的安装条件相同,用的是军哥的lnmp一键安装包。那么,在 /usr/local/nginx/conf/vhost 下找到你的域名配置文件,假设是www.abc.com.conf,打开这个文件,在适当的位置,添加
location /subdirectory/ { rewrite ^/subdirectory/wp-json/(.*?)$ /subdirectory/index.php?rest_route=/$1 last; }
然后,重启nginx即可。
现在,访问 https://www.yourdomaim.com/subdirectory/abc/wp-json/ 可以看到能够正常显示了。