У меня есть страница 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
У кого-нибудь есть идея?