以下は期待通りに動かない。
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/