为什么/wp-json/不适用于“普通”永久链接结构?

时间:2018-09-21 作者:coolpasta

我遇到了以下错误:

https://image.prntscr.com/image/yUjTXILmQR6lbpAFIb2CyA.png

尝试访问时http://127.0.0.1/wordpress/wp-json/wp/v2/posts/ 但如果我将permalink结构改为“Day and Name”,它就会起作用。

问题是,每个人的默认安装都使用“plain”,这是否意味着大多数人无法访问默认启用的WP-JSON?

怎么会这样?

这是我的.htaccess 位于/wordpress/ 文件夹:

# BEGIN LSCACHE
# END LSCACHE
# BEGIN NON_LSCACHE
# END NON_LSCACHE

# BEGIN WordPress

# END WordPress
另外,如果有人能解释一下为什么会出现这个问题,那就太好了。我觉得永久链接在WordPress中是一件大事,但你几乎从来没有见过它们。

1 个回复
SO网友:Milo

假设您从一个完全为空的服务器开始。您尚未安装WordPress。现在如果你去看那些wp-json URL,您的服务器将查找与您的请求相匹配的相应目录/文件,当然它是空的,因此正如您所期望的,您会收到404个错误。

现在安装默认WordPress,普通permalinks。访问相同的URL,然后。。。仍然是404s。为什么?在服务器上查找这些目录。它们仍然不存在,这并没有简单地通过安装WordPress来改变。

现在启用Pretty Permalinks。您可以访问这些JSON URL,尽管物理目录仍然不存在,但它们仍然可以工作。

发生了什么变化?

启用Pretty Permalinks会在.htaccess 文件,该文件激活作为服务器软件一部分的模块。现在,当您的服务器发现请求的目录/文件不存在时,它不再返回404个错误,而是将这些请求交给WordPress,以便WordPress可以在内部解决它们。

至于如何将REST API与普通permalinks结合使用,get_rest_url() 我会告诉你,它将以?rest_route= 当未启用Pretty Permalinks时。

结束