除一个页面外,其他所有页面均进行基本身份验证

除一个页面外,其他所有页面均进行基本身份验证

我有一个 wordpress 页面,想要向该页面添加基本身份验证,除了 wordpress rest api(url:localhost/wp-json/xyz)!

主要问题似乎是在 wordpress 的标准 .htaccess 中发生的重定向。因此,我无法访问原始请求 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

有人有主意吗?

相关内容