mod_rewriteの質問です。ドキュメントルートが/var/www/htmlなドメイン、http://abc.defがあったとして、http://abc.def/ghi.jpgのリクエストを

ドキュメントルート外の/var/www/tmp/ghi.jpgを参照して返したいのですが、以下のようにやってもできません。どうやればよいでしょうか?

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ghi.jpg$ /var/www/tmp/ghi.jpg [R,L]

ドキュメントルート外を見に行くには、mod_rewriteじゃだめですか?どうすればよいでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/04/07 12:39:10
  • 終了:2009/04/14 12:40:02

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402009/04/07 13:58:55

ポイント35pt
RewriteRule ^(ghi\.jpg)$ /var/www/tmp/$1 [L]

R は Redirect の指定だから無理。

Apache URL Rewriting Guide


設定によっては以下も必要かも。

<Directory /var/www/tmp/>
 Allow from all
</Directory>
id:cbic

ためしてみます

が、無理でした。/var/www/tmp/と記述すると、/var/www/html/var/www/tmp/を参照しようとしますね。。

2009/04/07 18:21:45
id:rryu No.2

りゅう回答回数30ベストアンサー獲得回数22009/04/07 13:40:37

ポイント35pt

この場合はmod_rewriteを使うよりAliasディレクティブを使うほうが簡単です。

Alias /ghi.jpg /var/www/tmp/ghi.jpg

http://httpd.apache.org/docs/2.0/ja/mod/mod_alias.html#alias


まあ、うまく行かないのはRewriteEngine Onが無いからだけな気がしますが・・・

id:cbic

そうですねー

2009/04/07 14:57:36
  • id:b-wind
    > /var/www/html/var/www/tmp/を参照しようとしますね。。
    RewriteBase の設定が間違っているような挙動だな。それか mod_rewrite 意外にも何か設定があるとか。
    フラグを [L,NS] にしたら改善するかも。

    それでもだめなら、RewriteLog で挙動を確認するしかないねぇ。
    ちなみに、ちゃんと設定すれば DocumentRoot の外を見に行くのは可能です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません