以下のように設定しましたが、うまく動作しません。ほかにも設定が必要でしょうか?
httpd.conf:
AccessFileName .htaccess
<Files .htaccess>
Order allow,deny
allow from all
</Files>
.htaccess:(imagesディレクトリ内)
SetEnvIf Referer ”^http://localhost” ref_ok
order deny,allow
allow from all
deny from env=ref_ok
テストのためlocalhostでリンクした場合に拒否できるか試していますが、画像が表示されてしまいます。
http://httpd.apache.org/docs/2.2/howto/auth.html
Authentication, Authorization and Access Control - Apache HTTP Server
URLはダミーです。マニュアルページですから直接の回答にはなっていません。
質問にあるような動作を期待しているのであれば、次のような記述になるのではないかと思います。
あなたのサイトが http://www.xxx.com/ だったとして
.htaccess:(imagesディレクトリ内)
SetEnvIf REFERER ”xxx.com” ref_ok
order deny,allow
deny from all
allow from env=ref_ok
つまり、リクエストの REFERER 文字列中に ”xxx.com” というパターンが含まれていれば ref_ok になり(設定1行目)、ref_ok の時は、アクセスが許可(allow)されます(設定4行目)。 それ以外の場合はすべて拒否(deny)されます(設定3行目)。
また、質問の動作とは直接関係ありませんが、セキュリティ上の配慮から通常、.htナントカ というファイルは外部からは隠すべきです。 ですから、httpd.conf 内での <Files> ディレクティブは、以下のように設定した方が良いでしょう。
httpd.conf:
<Files ~ ”^¥.ht”>
Order allow,deny
Deny from all
</Files>
上記で問題が解決されると良いのですが。
>.htaccess:(imagesディレクトリ内)
>SetEnvIf Referer ”^http://localhost” ref_ok
>order deny,allow
>allow from all
>deny from env=ref_ok
ん〜
order deny,allow じゃ無くて order allow,deny
じゃないとうごかんような気がしたオイラ
まぁどうでもいいけどね