在Apache中,SetEnv存在一些容易被忽略的问题
以下的情况与预期不符。
SetEnv hogehoge
Order allow,deny
Allow from env=hogehoge
由于SetEnv设置的”hogehoge”无法在随后的Allow指令中被引用,所以这样做。
然而,以下操作按预期工作。
SetEnvIf Request_URI ".*" hogehoge
Order allow,deny
Allow from env=hogehoge
SetEnv和SetEnvIf在可以访问设置的变量的位置上存在差异。
前者不能从紧随其后的Allow指令中进行引用,而后者可以。
不知道是一个错误还是一个规范,但感觉不舒服。
以下的網站可以參考,了解設置環境變量和訪問該環境變量之間的關係:
https://turboflash.wordpress.com/2010/05/27/apache-environment-variables-visibility-with-setenv-setenvif-and-rewriterule-directives/