我正在尝试比较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>
答案 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>