WordPress站点.htaccess重写规则合并与排序调整功能影响咨询
问题结论
你不能按你提供的方式合并这两条RewriteRule规则,合并后会出现功能异常,原本解决REST API 401错误的配置会失效。
原因说明
- 你原本新增的全局规则
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]作用范围是所有请求,不管请求路径是什么,都会把请求携带的Authorization头部设置为环境变量传递给PHP后端,这是解决REST API 401认证失败的核心逻辑。且这条规则没有加[L]标记,执行完设置环境变量的操作后,还会继续向下执行WordPress原生的重写规则,不会影响站点伪静态功能。 - 你合并后的规则
RewriteRule ^index\.php$ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L],把设置Authorization环境变量的逻辑限制到了仅匹配直接访问index.php的请求,类似/wp-json/开头的REST API请求无法命中这条规则,也就不会传递Authorization头部,会回到之前的401错误状态。
优化建议
保持原有的两条RewriteRule分开的写法即可,这也是WordPress官方推荐的支持Authorization头部传递的标准重写配置,没有合并的必要,强行合并反而会引发功能故障。
内容的提问来源于stack exchange,提问作者Mikhail Koval
相关产品推荐
相关产品推荐

