「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 です。
http://www.preston-net.com/wiki/index.php?%5B%5B%C4%BE%A5%EA%A5%...
Preston Wiki - 直リンク禁止設定
画像などの直リンクを禁止させたいのですよね。
これでいかがでしょ。
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^http://hoge.jp/.*$ [NC]
いえ、目的は全く別で、
REFERER がないか、自サイト内からの場合のみ、あらかじめ生成済みの静的なキャッシュファイルに飛ばし、それ以外 (つまり外部サイトから飛んできた場合) のみ CGI に飛ばす、ということをやろうとしています。
なので条件としては逆になります。