请在根目录的顶部尝试以下mod\\u rewrite指令.htaccess
文件(在# BEGIN WordPress
第节):
# Reject any user requests that are not prefixed "/wp-json"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule !wp-json($|/) - [F]
未加前缀的请求URL
/wp-json
(或
/wp-json/
) 被拒绝,403禁止。
这个RewriteCond
检查REDIRECT_STATUS
环境变量是为了确保仅阻止来自客户端的请求,而不是在内部将请求重写到index.php
(WordPress前控制器)。REDIRECT_STATUS
在初始请求时为空,并设置为;200英寸;第一次成功重写后(如200 OK状态)。
<Directory />
AllowOverride None
</Directory>
<Directory /wp-json*>
AllowOverride All
</Directory>
<Directory /wp-json*/*>
AllowOverride None
</Directory>
<Directory>
和
AllowOverride
是仅限服务器的指令,如果在中使用,将触发500内部服务器错误
.htaccess
. 然而
AllowOverride
启用/禁用
.htaccess
覆盖(它不阻止访问)-这不是您想要在这里执行的操作(
.htaccess
覆盖可能已启用)。和
/wp-json
不是物理的“;“目录”;在文件系统上
<Directory>
指令在此不适用。
Order deny,allow
Deny from all
Allow from all
拥有
Deny from all
和
Allow from all
在同样的背景下,这真的没有意义。(您需要禁用对根的访问,并启用对特定URL路径前缀的访问。)然而
Order
,
Deny
和
Allow
是Apache 2.2指令,您更可能位于Apache 2.4服务器上。这些指令现在被弃用,取而代之的是Apache 2.4
Require
指令组。