Woocommerce 休息 api 不工作 401 未经授权

Woocommerce rest api not working 401 unauthorised

我有 wordpress 5.4.1 和 woocommerce 4.2 以及 let's encrypt 的 ssl 证书

在使用查询字符串 https://www.store.com/wp-json/wc/v3/products?consumer_key=ck_XXXX&consumer_secret=cs_XXX 之前,我设法从 API 获得了响应,但它突然停止工作,给我 401 未经授权的错误。我对密钥有 100% 的把握。

我将 php 与 FastCgi 一起使用,我了解到有时服务器无法正确读取授权,因此我尝试了以下操作

我加了

<IfModule mod_setenvif>
  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

到我的 .htaccess 文件

我还添加了

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

重写引擎开启

后到我的httpd.conf文件

我还安装了基本的身份验证插件https://github.com/WP-API/Basic-Auth

以上所有解决方案均未能得到邮递员或失眠的响应,同样的错误401 unauthorized。

2天后终于得到答案

最好的解决方案是删除所有上述内容并添加

RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

所以我的整个 htaccess 块将如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>