WP REST API и «Только аутентифицированные пользователи могут получить доступ к REST API» - PullRequest
0 голосов
/ 18 мая 2018

У меня есть WordPress: https://example.com Мне нужно использовать WP REST API.

В .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule>
# END WordPress

Я использую плагин Basic-Auth на моем WordPress: https://github.com/WP-API/Basic-Auth

Тем не менее у меня есть:

{
    "code": "rest_cannot_access",
    "message": "Only authenticated users can access the REST API.",
    "data": {
        "status": 401
    }
}

enter image description here

Я тестировал с http и https.

Что не так?

1 Ответ

0 голосов
/ 18 мая 2018

Решено!

Я изменил его на следующее

<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>

Правило HTTP_AUTHORIZATION должно предшествовать другим правилам, это потому, что флаг L существует, флаг L означает (последнее - прекратить обработку правил), из-за этого оно никогда не придет к этому правилу, если оно будет после первоначальных правил WordPress,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...