Apache允许使用SetEnvIfExpr的Ip范围

Apache允许使用SetEnvIfExpr的Ip范围,apache,Apache,我要处理以下任务: 在我的apache服务器充当代理服务器时,我只需要允许访问某些子网络。因为它在一个WAF Incapsula后面,所以我试图从X-Forwarded-For中提取IP以接纳它,并与之匹配 SetEnvIfExpr "req('X-Forwarded-For') =~ /(^.*,\s*|^)(.*)$/ && $2 -ipmatch '54.93.255.128/27'" AllowIP 而是像这样工作 SetEnvIF X-Forwarded-For "5

我要处理以下任务: 在我的apache服务器充当代理服务器时,我只需要允许访问某些子网络。因为它在一个WAF Incapsula后面,所以我试图从X-Forwarded-For中提取IP以接纳它,并与之匹配

SetEnvIfExpr "req('X-Forwarded-For') =~ /(^.*,\s*|^)(.*)$/ && $2 -ipmatch '54.93.255.128/27'" AllowIP
而是像这样工作

SetEnvIF X-Forwarded-For "54.93.255.139" AllowIP
但在这种情况下,IP的数量太大,无法管理

你有什么建议吗?

我解决这个问题: 我添加了这些指令以获取X-Forwarded-For收集的第二个$2 IP,然后我将ipmatch与需要检查的子网掩码匹配:

    SetEnvIf X-Forwarded-For "^(.*,\s*)(.*)(,\s*.*)$" ip_to_catch=$2
  SetEnvIFExpr "env('ip_to_catch') -ipmatch '66.91.255.128/27'" AllowIP
在末尾,我添加了以下内容以在授予对我的资源的访问权限之前检查AllowIP值:

<RequireAll>
      Require env AllowIP
  </RequireAll>