我需要为uri后端添加基本身份验证,但需要排除某些uri,我已经尝试添加SetEnvIf
SetEnvIf REQUEST_URI "(login|admin)" PROTECTED
SetEnvIf REQUEST_URI "^/api/*" !PROTECTED
该想法是保护包含login
或admin
但允许admin/api/*
的uri
但这是行不通的,你们能给我一些提示吗?
答案 0 :(得分:1)
您的正则表达式在这里有问题:
`^/api/*`
在开始时将匹配/api
,在*
之后将/
无效。
您可以通过使用否定超前行为在单个SetEnvIf
规则中执行此操作:
SetEnvIf REQUEST_URI "(login|admin(?!/api/))" PROTECTED
(?!/api/)
表示从此规则中跳过/admin/api/