謎のタイトルになりましたが、、、 apacheのmod_rewriteでリライトするときに、SetEnvIfやSetEnvIfNoCaseで設定した環境変数を参照したい場合があります。 マニュアルにはあんまり丁寧に出てないんですが、Using Environment Variablesの最後にちゃーんと書いてありました。
%{ENV:variable}
これで環境変数を使えます。
mod_rewriteのほうには書いてないのがちょっと不親切ですね。。
↓以下サンプルです。
プライベートIPアドレスからの接続の場合に特別なページを表示するサンプルです。 ・プライベートIPアドレスから/portal/への接続⇒/office/~のコンテンツを表示 ・それ以外から/portal/への接続⇒/public/~のコンテンツを表示
RewriteEngine On SetEnvIf Remote_Addr ^192.168. OFFICE=yes SetEnvIf Remote_Addr ^172.1[6-9]. OFFICE=yes SetEnvIf Remote_Addr ^172.2[0-9]. OFFICE=yes SetEnvIf Remote_Addr ^172.3[0-1]. OFFICE=yes SetEnvIf Remote_Addr ^10. OFFICE=yes RewriteCond %{ENV:OFFICE} yes RewriteRule ^/portal/(.*)$ /office/$1 [L,QSA] RewriteRule ^/portal/(.*)$ /poblic/$1 [L,QSA]