apacheのmod_envとmod_rewriteの環境変数の扱い
apache 1.3系で、
SetEnv FOO BAR
と
RewriteRule .* - [E=FOO:BAR]
は等価のように見える。
たしかにphp内でアクセスする分には変わらないです。
しかし
以下のようにすると
SetEnv FOO BAR RewriteRule /path/to /index.php?module=path&action=to&env=%{ENV:FOO}
RewriteRule .* - [E=FOO:BAR] RewriteRule /path/to /index.php?module=path&action=to&env=%{ENV:FOO}
前者はenvは空で、後者にはちゃんとenv=BARとなる。
という不思議。
おそらくmod_envとmod_rewriteモジュールの読み込まれる順番が違うから?という推測。
apacheに精通されてる方なら周知の事実かもしれません。
そして、上記のような設定例はあり得ないとは思いますが、いいサンプルが思いつかず、
でも、こんな現象がおこったので書き留めておきます。