mod_rewrite で悩んでいます。


「HTTP_REFERER がない場合」という条件設定を行いたいとき、
RewriteCond %{HTTP_REFERER} !.+ では正しく判断されるのに、
RewriteCond %{HTTP_REFERER} ^$ では無視されてしまいます。

また、「HTTP_REFERER が http://hoge.jp/〓 の場合」という条件設定を行いたいとき、
RewriteCond %{HTTP_REFERER} ^http://hogeo.jp/.*$
RewriteCond %{HTTP_REFERER} ^http://hogeo.jp/
RewriteCond %{HTTP_REFERER} .*hoge.*
RewriteCond %{HTTP_REFERER} hoge
RewriteCond %{HTTP_REFERER} .+
どの表現でも無視されてしまいます。

いったい何が悪いのでしょうか?
サーバは Apache 2.0 です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:kimizu No.1

回答回数726ベストアンサー獲得回数21

ポイント50pt

画像などの直リンクを禁止させたいのですよね。

これでいかがでしょ。


RewriteCond %{HTTP_REFERER} !^$ [NC]

RewriteCond %{HTTP_REFERER} !^http://hoge.jp/.*$ [NC]

id:pmakino

いえ、目的は全く別で、

REFERER がないか、自サイト内からの場合のみ、あらかじめ生成済みの静的なキャッシュファイルに飛ばし、それ以外 (つまり外部サイトから飛んできた場合) のみ CGI に飛ばす、ということをやろうとしています。

なので条件としては逆になります。

2005/11/08 00:21:09

コメントはまだありません

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

トラックバック

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

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

回答リクエストを送信したユーザーはいません