Apache .htaccess比较2个变量

时间:2019-05-03 13:38:53

标签: apache .htaccess variables

我正在尝试比较htaccess文件中2个变量的值,如果不匹配则抛出403,如果需要,则需要嵌套。

嵌套if似乎是可能的,但是我找不到任何内容表明无法在if语句中比较2个变量。有人知道这是否有效吗? htaccess文件中有更好的方法吗?

谢谢。

RewriteEngine On
<If "%{ENV:LOAD_BALANCER_MODE} == '1'">
    <If "%{HTTP:X-LOAD-BALANCER} != %{ENV:LOAD_BALANCER_KEY}">
    RewriteRule .* - [F]
    </If>
</If>

1 个答案:

答案 0 :(得分:0)

最终发现问题与在2.4.25版上运行Apache有关-这是默认的debian Stretch。嵌套if直到2.4.26才可用,如此处所述:apache 2.4, nested If directives

如果您尝试做类似的事情,请在&&中使用if -以下内容与上述功能完全相同,并且可以在Apache 2.4.25中使用:

RewriteEngine On
<If "%{ENV:LOAD_BALANCER_MODE} == '1' && %{HTTP:X-LOAD-BALANCER} != %{ENV:LOAD_BALANCER_KEY}">
    RewriteRule .* - [F]
</If>