最近,我所有的REST-API请求都突然返回404错误,每个请求(无论是自定义端点还是内置的)。
然后我想这是因为permalink的结构。/wp-json/
在普通permalink下无法访问,因为目前根本没有可用的重定向规则。
在这种情况下是否可以使用REST端点?自定义和内置。
最近,我所有的REST-API请求都突然返回404错误,每个请求(无论是自定义端点还是内置的)。
然后我想这是因为permalink的结构。/wp-json/
在普通permalink下无法访问,因为目前根本没有可用的重定向规则。
在这种情况下是否可以使用REST端点?自定义和内置。
是的,你可以。只需添加rest_route
查询参数。
所以
https://wordpress.org/wp-json/
将成为https://wordpress.org/?rest_route=/
或https://wordpress.org/wp-json/wp/v2/
将成为https://wordpress.org/?rest_route=/wp/v2
给你一个更完整的例子。所以你想知道如何决定使用哪一个?不用担心,这里有一个函数:get_rest_url()
另一种选择是,默认情况下<link>
在提供API根的标头中。
<link rel=\'https://api.w.org/\' href=\'https://wordpress.org/wp-json/\' />
因此,如果您需要从客户端JS了解这一点,只需使用以下内容document.querySelectorAll(\'link[rel="https://api.w.org/"]\')[0].getAttribute(\'href\');
所以基本上你不应该wp-json
按照给定的部分(并对其进行硬编码),但始终使用get_rest_url()
或上述JS方法。您可以在web服务器上添加一个重写。
E、 g代表nginx
location ~ ^/wp-json/ {
rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;
}
我已将wordpress项目导出并导入live server。现在的问题是,我将permalink结构作为“localhost”格式。当我单击网站中的任何链接时,它会将我重定向到localhost。我怎样才能改变这一点?我的htaccess文件如下所示<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /myproject/ RewriteRule ^index\\.php$ - [L] RewriteCo