自分のサイト内にある、画像の直リンクを許可していると、
他のサイトにリンクを貼られ、余計なトラフィックが増えて、
問題となる場合がある。

今回特に必要でもなかったが、自サイトからのアクセス以外の
画像に対するアクセスを拒否するようにApacheの設定を試みた。

設定する方法は、画像を置いてあるディレクトリ配下に
「.htaccess」ファイルを作成する方法と、
Apacheの設定ファイルである、httpd.confに
直接編集する方法がある。

今回は、Includeさせて、conf.d配下に画像拒否用の
設定ファイルを作成する事にした nikkori

<directory [対象のディレクトリ名]>
  <filesmatch "\.([Jj][Pp][Gg]|jpeg|[Gg][Ii][Ff]|[Pp][Nn][Gg])$"> #拡張子がjpg、JPG、gif、GIF、png、PNG、jpegのファイルを対象とする
    SetEnvIf Referer "^http://metal-blood\.com" ref01                  #自分のドメインを指定する。
    Order deny,allow
    Deny from all
    Allow from env=ref01
  </filesmatch>
</directory>

以上で、設定が完了。
.htaccessファイルにて編集する人は、特定のディレクトリ配下に
以下の内容で、.htaccessを作成する。

<filesmatch "\.([Jj][Pp][Gg]|jpeg|[Gg][Ii][Ff]|[Pp][Nn][Gg])$"> #拡張子がjpg、JPG、gif、GIF、png、PNG、jpegのファイルを対象とする
  SetEnvIf Referer "^http://metal-blood\.com" ref01              #自分のドメインを指定する。
  Order deny,allow
  Deny from all
  Allow from env=ref01
</filesmatch>

httpd.confを編集した人は、Apacheを再起動して有効化しましょう。
直リンクが拒否されてるかの確認は、ロリポップで使わせてもらいました。
自分のサイトの画像のURLを入力して、
画像が表示されず、「Forbidden」が出ればOK good

これで、設定が完了したと思っていた・・・
2~3日後、ふと携帯からうちのブログを見てみると、
画像が拒否されている事が判明 dame

続きを読む…