Назад | Перейти на главную страницу

базовая авторизация для всех страниц кроме одной

У меня есть страница wordpress, и я хочу добавить базовую аутентификацию на страницу, за исключением api отдыха wordpress (url: localhost / wp-json / xyz)!

Основная проблема, по-видимому, заключается в перенаправлении, которое происходит в стандартном .htaccess WordPress. Из-за этого у меня нет доступа к исходному uri запроса.

Вот .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]
</IfModule>

# END WordPress

Вот пример: я добавил эти строки в свою конфигурацию виртуального хоста:

SetEnvIf Request_URI "(^.*$)" RURI=$1
CustomLog "logs/custom.log" "%U - %{RURI}e"

И выход, когда я приезжаю localhost/wp-json будет:

/wp-json - /index.php

Так что request_uri всегда index.php, мне понадобится значение, которое находится в "% U", но как я могу это получить?

Я также попытался добавить директиву местоположения:

<Location ~ "^/(?!wp-json)">
    AuthType Basic
    AuthName "Restricted Files"
    # (Following line optional)
    AuthBasicProvider file
    AuthUserFile "C:\Users\moe\passwd"
    Require user user
</Location>

Но это тоже не работает ...

редактировать:

Я также попытался добавить переменную окружения в .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,E=REQUEST_URI_ORIG:%1]
</IfModule>

# END WordPress

Но тоже безуспешно

Я использую Apache / 2.4.38

У кого-нибудь есть идея?