apache:SetEnvIfでHTTPヘッダー情報をもとに制御する
Last-modified: 2013-08-24 (土) 02:14:21 (3891d)
Top / apache:SetEnvIfでHTTPヘッダー情報をもとに制御する
apache:SetEnvIf?でHTTPヘッダー情報をもとに制御する †
たとえば、ロードバランサーを使用している環境で、クライアントのIPアドレスでアクセス制御をしたいとき、こんな感じでできます。
SetEnvIf X-Forwarded-For "^192.[1-3][0-9]" TESTOK <Location /> Order Deny,Allow Deny from all Allow from env=TESTOK </Location>
さて、動作確認したいけど、確認できる環境にはロードバランサが無い場合が多いですよね。そんな場合でも、疎通レベルではcurlに「-H」オプションをつけて実行することで確認できます。
こんな感じです。
[root@localhost ~]# curl -H "X-Forwarded-For:192.22.192.11" http://localhost/test1/test.html 10.43.86.115 test OK! [root@localhost ~]# curl -H "X-Forwarded-For:192.42.192.11" http://localhost/test1/test.html <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access /test1/test.html on this server.</p> <hr> <address>Apache/2.2.3 (CentOS) Server at localhost Port 80</address> </body></html>
勿論、「X-Forwarded-For」以外の独自HEADERをもとに制御することもできます。例えば「TEST」とかもOK。