RewriteRuleによるパターンマッチング
いつもお世話になっております。
RewriteRuleによるパターンマッチングで特定のファイルを外部の画像配信サーバより配信させてたいと考えておりますが上手くいっておらず行き詰っております。
前提・補足情報・現在発生している問題など記載しますので、どなたかお分かりになるようでしたらご支援いただけますと大変助かります。
◆サイトの構造
htdocs
|_ hoge
|_ lib
◆前提
/htdocs/lib/movies/hoge/配下にmp4・swf・swfを配置しているが、
そのサイズが大きいため外部の画像配信サーバにキャッシュさせている。
そのため、mp4・swf・swfなどのファイルに対するリクエストがあった場合、
mod_rewriteによって外部の画像配信サーバにリダイレクトさせ外部サーバより
クライアントにダウンロードさせるようにする。
◆補足事項
mp4・swf・swfなどのファイルは、クライアントが/htdocs/hoge/index.phpをHTTPでGETすると、index.phpの内部で次の通り呼び出されクライアントに渡される構造となっている。
<source src="..lib/movies/hoge/hoge123.mp4">
◆現在の問題点
.htaccessに次のようにRewriteRuleを定義しているが、
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RewriteRule ^(.*)\.(flv|mp4|3gp|jpg|gif|png)$ http://test.hoge.hoge.net/$1.$2 [NC,R,L]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
rewrite_logをみると、
172.16.10.78 - - [12/Apr/2012:10:44:09 +0900] [172.24.133.81/sid#94d0478][rid#98e0880/initial] (3) [perdir /home/hoge/www.hoge.jp/htdocs/] applying pattern '^(.*)\.(flv|mp4|3gp|jpg|gif|png)$' to uri 'present/index.php'
172.16.10.78 - - [12/Apr/2012:10:44:09 +0900] [172.24.133.81/sid#94d0478][rid#98e0880/initial] (1) [perdir /home/hoge/www.hoge.jp/htdocs/] pass through /home/hoge/www.hoge.jp/htdocs/present/index.php
index.phpに対してパターンマッチングしているため、flv|mp4|3gp|jpg|gif|pngらのファイルを外部サイトからGETするよう想定通りのリダイレクトができてきない。
◆疑問
mod_rewriteの動きとして、上述のようにクライアントが直接HTTP GETせず、
phpを経由してflv・mp4を取得する場合、
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RewriteRule ^(.*)\.(flv|mp4|3gp|jpg|gif|png)$ http://test.hoge.hoge.net/$1.$2 [NC,R,L]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
このような記述では、mod_rewriteのRewriteRuleによるパターンマッチングは有効とはらないのでしょうか?
また、仮に次のように定義した場合、
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RewriteCond %{REQUEST_FILENAME} "\.(flv|mp4|3gp|jpg|gif|png)$"
RewriteRule ^(.*)\.(flv|mp4|3gp|jpg|gif|png)$ http://test.hoge.hoge.net/$1.$2 [NC,R,L]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
想定通りのパターンマッチングとなり、
test側へリダイレクトされるようになったりしますでしょうか?
補足
PHPではないのですが、過去の質問者の方をみたのものありますし、 別のカテゴリで登録したところ回答が得られなかったので、 こちらにしました。 PHPで開発中であったと言う事もあってですが。