- PR -

Apache2でIPアドレスを判定してリダイレクト先を変更

1
投稿者投稿内容
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2007-07-03 10:00
お世話になっております。
koaraと申します。

・RedHat Linux ES4(2.6.9-55)
・Apache 2.0.52

という環境でApacheの設定で困っております。

部門内向けWEBサーバーの表示内容を一部制限して部門外へ公開したいと思っています。
現状はWEBサーバーを2台立て部門内向けには全てのメニューを、
部門外向けには部門内向けの一部ページへのリンクをメニューにして対応しています。

このサーバーを1台に統合したいのですが、
接続元のIPアドレスを判定してバーチャルホストへ転送することは可能でしょうか?


■現状の構成
部門内向けWEBサーバー

・ホスト名 hostA
・ホストIP 192.168.1.100
・URL  http://hostA
・アクセス制限 192.168.1. からのみ許可
・公開内容 新着情報、スケジュール、在庫検索、...

部門外向けWEBサーバー

・ホスト名 hostB
・ホストIP 192.168.1.101
・URL http://hostB
・アクセス制限 192.168.2. からのみ許可
・公開内容 新着情報


具体的には下記のような設定をしたいです。

・192.168.1.0/24から接続があった場合
”http://host.html”へリダイレクト

・192.168.2.0/24から接続があった場合
”http://vhost.html”へリダイレクト

情報をお持ちの方がおられましたら
アドバイスよろしくお願いします
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2007-07-03 14:31
試していないので、なんとも言えませんがmod_rewriteなら実現可能だと思います。

例)192.168.2.0/24からのアクセスの場合、host.htmlをvhost.htmlに書き換える
コード:
   RewriteCond %{REMOTE_ADDR} ^192\.168\.2\.[0-9]{1,3}$
   RewriteRule ^host\.html$ vhost.html [L]


スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2007-07-03 15:19
Name-based virtual host にして(1台のマシンにhostAとhostBの2つの名前を付ける)、必要であればそれぞれアクセス制限する方法もあります。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-07-03 16:39
引用:

koaraさんの書き込み (2007-07-03 10:00) より:
■現状の構成
部門内向けWEBサーバー

・ホスト名 hostA
・ホストIP 192.168.1.100
・URL  http://hostA
・アクセス制限 192.168.1. からのみ許可
・公開内容 新着情報、スケジュール、在庫検索、...

部門外向けWEBサーバー

・ホスト名 hostB
・ホストIP 192.168.1.101
・URL http://hostB
・アクセス制限 192.168.2. からのみ許可
・公開内容 新着情報


というのであれば
引用:
・192.168.1.0/24から接続があった場合
”http://host.html”へリダイレクト

・192.168.2.0/24から接続があった場合
”http://vhost.html”へリダイレクト


ではなく

・192.168.1.0/24からhttp://hostBへ接続があった場合
”http://hostA/”へリダイレクト

・192.168.2.0/24からhttp://hostAへ接続があった場合
”http://hostB/”へリダイレクト

ですよね?ゆうじゅんさんが書かれたようにmod_rewriteで可能だと思います。name_basedですから、(統合された)IPへのアクセスがhostAになるかhostBになるかは設定次第ですが、いずれにしても各々のDocumentRootの.htaccessで設定すればよろしいかと。

[ メッセージ編集済み 編集者: shimix 編集日時 2007-07-03 16:43 ]
1

スキルアップ/キャリアアップ(JOB@IT)