htaccess 从基本身份验证中排除多个 url

Bri*_*euc 3 apache .htaccess basic-authentication .htpasswd

您好,我需要在测试阶段保护我的应用程序。

我读过这篇关于从基本身份验证中排除一个网址的文章

但我想排除 2 个网址:

/API/*

/oauth/v2/令牌

因此,除了这两个公开的 url 之外,整个应用程序都将受到保护。否则我无法访问我的 api 路由。

我现在的 .htaccess 是:

# Protect the app with password
AuthUserFile /home/master/public_html/web/.htpasswd
AuthName "Protected"
AuthType Basic
Require valid-user
Run Code Online (Sandbox Code Playgroud)

所以我猜我应该需要某种排序或正则表达式:

SetEnvIf Request_URI ^/api/ noauth=1
Run Code Online (Sandbox Code Playgroud)

我怎样才能有像 OR 条件?

小智 5

Apache 2.4 身份验证/访问控制自 2.2 以来已发生变化。这是新语法:

AuthType Basic
AuthUserFile /home/master/public_html/web/.htpasswd
AuthName "Protected"
SetEnvIf Request_URI ^/(api/|oauth/V2/token) noauth=1
<RequireAny>
  Require env noauth
  Require env REDIRECT_noauth
  Require valid-user
</RequireAny>
Run Code Online (Sandbox Code Playgroud)