トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

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。

参考サイト