- PR -

Apacheにてアクセス元のネットワークによって表示される内容を変える

投稿者投稿内容
めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2005-03-11 12:36
引用:

こんぴさんの書き込み (2005-03-11 12:21) より:

RewriteCond のところですが、
実際にはバックスラッシュ1個だけで書いています。
なぜか、こちらに投稿した際には2個になっていました。


そうでしたか。失礼しました。

VirtualHost内には、RewriteEngine on から書かないとだめですよ。
conp
会議室デビュー日: 2004/03/25
投稿数: 17
投稿日時: 2005-03-11 16:05
現状のご報告です。

バーチャルホストを利用するのをやめて
以下だけを記述する形に変えてみました。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^aaa\.aaa\.aaa\\. [OR]
RewriteCond %{REMOTE_ADDR} ^bbb\.bbb\.
RewriteRule ^/.*$ /var/www/html/private/index.html
</IfModule>

すると、グローバル側から
http://www.abc.de.co.jp
をブラウズすると、グローバル側のコンテンツが表示され、
プライベート側から上記URLをブラウズすると
プライベート側のコンテンツを表示することができました。

しかし、プライベート側のコンテンツの画像が
表示されません。
ブラウザのキャッシュを消して再起動して
ブラウズしたり、
画像のパスをHTMLフルパスをファイルに記述したりしてみましたが
だめでした。

これが解決できれば
ほぼ思ったとおりの形になるのですが
どのように解決したらよいか分かりません。

よろしくお願い致します。
めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2005-03-14 08:32
引用:

こんぴさんの書き込み (2005-03-11 16:05) より:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^aaa.aaa.aaa\. [OR]
RewriteCond %{REMOTE_ADDR} ^bbb.bbb.
RewriteRule ^/.*$ /var/www/html/private/index.html
</IfModule>
すると、グローバル側から
http://www.abc.de.co.jp
をブラウズすると、グローバル側のコンテンツが表示され、
プライベート側から上記URLをブラウズすると
プライベート側のコンテンツを表示することができました。



ここで言われている、「プライベート」と「グローバル」とは、
それぞれ「aaa.aaa.aaa.*とbbb.bbb.*.*のネットワーク」と「それ以外」
ということですか?

引用:

しかし、プライベート側のコンテンツの画像が
表示されません。



その表示されない画像は、/var/www/html/private/ 以下にあるのでしょうか。
例えば、/var/www/html/private/index.html から /var/www/html/private/fig.jpgが
表示されないとか?
どういうディレクトリ構造で、うまくいかない具体例を挙げてもらえると
検証しやすいのですが。

conp
会議室デビュー日: 2004/03/25
投稿数: 17
投稿日時: 2005-03-14 14:19
めぐ様
ご返信ありがとうございます。

Webサーバの状況は以下のようです。
以下の図は、プライベート側から
ブラウズ確認したときの図です。



bbb.bbb.*.* グローバル側
-----------------------------
| http://www.abc.de.co.jp
+--------------+
| サーバ |
+--------------+
| http://www.abc.de.co.jp
-----------------------------
| aaa.aaa.aaa.* プライベート側
|
+----------+
| ブラウザ |
+----------+


プライベート側からブラウズした際には
プライベート側で提供されている内容をブラウズし、
グローバル側からブラウズされた場合には、
グローバル側で提供されている内容がブラウズされる
ということを行いたいと思っております。

表示されない画像についてですが、
/var/www/html/private/image
以下にfig.jpgがあり、
/var/www/html/private/index.html
のにその画像が張ってあります。

また、グローバル側には
/var/www/html/index.html
/var/www/html/image/fig.jpg
という階層でファイルをおいていますが、
こちらは画像もファイルもブラウズすることができます。

よろしくお願い致します。
めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2005-03-14 15:48
Rewriteのログからは何かわかりませんか?
httpd.confに以下を追加するとログが取得できます。

RewriteLog logs/rewrite.log
RewriteLogLevel 3

めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2005-03-14 16:11
RewriteRule ^/(.*)$ /private/$1
ではどうでしょうか。

/index.html -> /private/index.html
/image/fig.jpg -> /private/image/fig.jpg
のようにrewriteされます。
conp
会議室デビュー日: 2004/03/25
投稿数: 17
投稿日時: 2005-03-14 16:25
めぐ様

度重なるご返信ありがとうございます。
早速設定をして
ログを見てみました。

その中に気になるログがありました。

aaa.aaa.aaa.10 - - [14/ 3月/2005:16:15:49 +0900] [http://www.abc.de.co.jp /sid#8099990][rid#82555c0/initial] (2) rewrite /image/title.gif -> /var/www/html/private/index.html

これを見る限り、title.gif
ファイルが index.html に rewrite されてしまっているようです。
RewriteRule の書き方の問題だと思いますが、
この辺りどのようにしたらよいかわかりません。
現在の設定は以前めぐ様に教えていただいた

RewriteRule ^/.*$ /index.html

という風になっています。
どのようにしたら良いか
教えて頂けると幸いです。

よろしくお願い致します。
めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2005-03-14 18:53
入れ違いになったようですが、

RewriteRule ^/(.*)$ /private/$1
ではどうでしょうか。

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