本文最后更新于 2025年10月31日。
原.htaccess内容
# BEGIN WordPress
# 在「BEGIN WordPress」与「END WordPress」之间的指令(行)是
# 动态生成的,只应被 WordPress 过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
您提供的这段 Apache mod_rewrite 规则是专门用来解决 Basic Auth 认证信息被服务器剥离问题的。
✅ 服务器配置确认与结论
您的这段规则:
Apache
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
它的作用是:强制将 HTTP 请求中的 Authorization 头部复制到一个名为 HTTP_AUTHORIZATION 的环境变量中。
这正是解决 Basic Auth 认证失败导致 WordPress REST API 无法获取私密文章的核心步骤。这意味着您的 WordPress 所在的 Apache 服务器配置是正确的,它不会剥离认证信息。