Tech:apache:特定の条件の人だけアクセスを許可する | ヘビィ・SMD!

ヘビィ・SMD!

そんな・・・バナナ!!
1. 甘え度+10 恐れ度+10 寿命-1週間
2. 甘え度+10 恐れ度-10
3. 甘え度-10 恐れ度-10 寿命+1週間

こんにちは。
ダラシネェエンジニヤです。

たまには技術的な話も書こうか。

apacheを使ったwebサーバがあるとしよう。
グローバルのIPを仮に、
255.255.255.255
とでもしようか。こいつをDNS登録して
http://www.hogehoge.fugafuga/
とアクセスすれば255.255.255.255に繋がるようにしているとしよう。
このサーバで、 /test/ というディレクトリだけは特定の条件でのみアクセス可能とする方法を記載。
設定ファイルに以下を書きます。

<Directory "/var/www/htdocs/test">
SetEnvIf Host www\.hoge\.fuga hostAllow
Order Deny,Allow
Deny from all
Allow from env=hostAllow
</Directory>

.htaccessファイルに

SetEnvIf Host www\.hoge\.fuga hostAllow
Order Deny,Allow
Deny from all
Allow from env=hostAllow

と書くだけでもおk。

これで、hostsに
255.255.255.255 www.hoge.fuga
と設定したら、

- http://www.hogehoge.fugafuga/test/test.html にアクセスしてきた場合は403エラーとなる。
- http://255.255.255.255/test/test.html にアクセスしてきた場合は403エラーとなる。
- http://www.hoge.fuga/test/test.html にアクセスしてきた場合は正常に返ってくる。

という感じになります。
あくまで、ちょこっと制限付けたいときだけ利用する用途に留めて下さい。
セキュリティのことなんて考えてないからね!