チョコミントアイス

今回初めてRewriteで画像を振り分けてみました。
以下のような記述を.htaccessに定義してみました。

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} (0|1|2|3|4|5)$
RewriteRule images/(.*) http://www.AAAAA.com/images/ [R,L]
RewriteRule images/(.*) http://www.BBBBB.com/images/ [R,

そこで質問なのですが、現在ipの末尾が012345はAAAAA.comというサイトから画像を拾いに行くと思うのですが、自分のIP自体はどちらか一方なので、確認もどちらかでしか行うことが出来ません・・・。

もし、私のIPも012345であれば、残りの6789の方が見れる状況を確認することが出来ないのです・・・。

どうにか擬似的にでもこれらを確認したいのですがどうしたら出来ますでしょうか??

もし正常にアップされていない画像などがあってもIPが違ってしまったら確認することが出来ません・・・。
現在はまだ2つと仮定していますので何とか確認できたとしても、10個とかに分けた場合確認作業はお手上げになってしまいます・・・。

どなたかお詳しい方おられましたら、アドバイス宜しくお願いいたします!!

A 回答 (2件)

正規表現は本が1冊書けるほど奥が深いのですが, マスターするととても便利ですので頑張ってみてください。



ふと思ったのですが, プロキシサーバを通せば全ての状況を確認できるかと思います。
参考URL 先にあるような無料で利用できるプロキシサーバも沢山あります。

ブラウザの設定で条件を満たすプロキシサーバ(この場合ですと末尾の IPアドレスが 6~9)を設定すれば,
プロキシサーバの IPアドレスでアクセスされるのでテストできるのではないでしょうか。

プロキシサーバの設定は検索すればすぐ見つかると思いますので, 試してみてください。

参考URL:http://www.cybersyndrome.net/
    • good
    • 0

二つにしか分岐しない, ということでしたら


下記のように ! をつけて 末尾が 012345 じゃなければ AAAAA.com から画像を拾いにいくというようにすれば,
末尾が 6~9 なら BBBBB.com を見に行くので確認は出来ると思います。

RewriteCond %{REMOTE_ADDR} !(0|1|2|3|4|5)$
# ちなみに, (0|1|2|3|4|5)$ は ([0-5]{1})$ のような正規表現にもまとめられます

条件分岐が 3個以上になると辛い所ですが, この場合は mod_env の SetEnvIfディレクティブを使って解決できるかも知れません。

SetEnvIf Remote_Addr "[0-5]{1}$" vremote_addr=xxx.xxx.xxx.xx0
SetEnvIf Remote_Addr "[6-9]{1}$" vremote_addr=xxx.xxx.xxx.xx6

のように, 環境変数 VRemote_Addr に擬似的な IPアドレスを設定し,
この環境変数を使って以下のように RewriteCond を指定します。

RewriteCond %{ENV:VREMOTE_ADDR} ([0-5]{1})$

実際に試したわけではありませんので, mod_rewrite と mod_env の評価の順番によってはうまくいかないかも知れませんが,
うまくいけばこの方法でいくらでも擬似的な IPアドレスを指定できると思います。
    • good
    • 0
この回答へのお礼

有難う御座います!!

初心者な者で、中々理解できない言葉が多いのですが、勉強して行きたいと思います・・・。

>># ちなみに, (0|1|2|3|4|5)$ は ([0-5]{1})$ のような正規表現にもまとめられます

なるほど、便利な記述が出来るのですね!っといっても正規表現の意味が良く分からないのですが、複数ある場合はまとめることが出来るのですね!

教えていただいた確認方法は、今の私の理解許容量をはるかに超えていますので、もっと勉強して教えていただいた意味が理解できるようになりたいと思います。。。

有難う御座います!

お礼日時:2006/09/22 14:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報