【发布时间】:2017-01-20 13:57:44
【问题描述】:
我在 httpd-vhosts.conf
中设置了一个环境变量SetEnv EARLY_VAR 1
我尝试根据 .htaccess
中的值设置特殊规则<If "%{ENV:EARLY_VAR} == '1'">
SetEnv TEST_VAR if_branch
</If>
<Else>
SetEnv TEST_VAR else_branch
</Else>
我希望 TEST_VAR 环境变量等于 if_branch。在 PHP
var_dump(getenv('EARLY_VAR')); // string '1'
var_dump(getenv('TEST_VAR')); // string 'else_branch'
我还尝试在 If/Else 上方的.htaccess 中设置EARLY_VAR,两者都使用SetEnv 和SetEnvIf。总是执行 Else 分支。
这是为什么?
Apache 2.4
【问题讨论】:
-
这里没有看到
%{ENV:是一个有效的表达式 ~ httpd.apache.org/docs/2.4/expr.html。虽然有env功能 -
@Phil 感谢您的提示。该页面上的文档语言很难理解,但我认为你让我走上了正确的轨道
-
@Phil
%{ENV:也是有效的。将扩展为"%{" funcname ":" funcargs "}" -
@hjpotter92 你能链接到一些文档吗?
-
@Phil 您提供的链接,在 Bachus Naur 语法部分下,请参阅
variable的扩展。页面下方还提供了函数列表。
标签: apache .htaccess environment-variables apache2.4