画像が保存してあるディレクトリへの直リンクを防止するために、apacheのhtaccessを設定しています。

以下のように設定しましたが、うまく動作しません。ほかにも設定が必要でしょうか?
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でリンクした場合に拒否できるか試していますが、画像が表示されてしまいます。

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

回答1件)

id:ga10 No.1

回答回数2ベストアンサー獲得回数0

ポイント50pt

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>


上記で問題が解決されると良いのですが。

id:konorinori

ありがとうございます。

大変参考になりました。

2006/02/21 16:30:30
  • id:namiki_h
    ちょっときになった

    >.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
    じゃないとうごかんような気がしたオイラ
    まぁどうでもいいけどね

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

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

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

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