需要为uri后端添加基本身份验证,但需要排除某些uri

时间:2018-09-20 19:33:35

标签: .htaccess

我需要为uri后端添加基本身份验证,但需要排除某些uri,我已经尝试添加SetEnvIf

SetEnvIf REQUEST_URI "(login|admin)" PROTECTED
SetEnvIf REQUEST_URI "^/api/*" !PROTECTED

该想法是保护包含loginadmin但允许admin/api/*的uri

但这是行不通的,你们能给我一些提示吗?

1 个答案:

答案 0 :(得分:1)

您的正则表达式在这里有问题:

`^/api/*`

在开始时将匹配/api,在*之后将/无效。

您可以通过使用否定超前行为在单个SetEnvIf规则中执行此操作:

SetEnvIf REQUEST_URI "(login|admin(?!/api/))" PROTECTED

(?!/api/)表示从此规则中跳过/admin/api/