自分のサイト内にある、画像の直リンクを許可していると、
他のサイトにリンクを貼られ、余計なトラフィックが増えて、
問題となる場合がある。
今回特に必要でもなかったが、自サイトからのアクセス以外の
画像に対するアクセスを拒否するようにApacheの設定を試みた。
設定する方法は、画像を置いてあるディレクトリ配下に
「.htaccess」ファイルを作成する方法と、
Apacheの設定ファイルである、httpd.confに
直接編集する方法がある。
今回は、Includeさせて、conf.d配下に画像拒否用の
設定ファイルを作成する事にした
<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を作成する。
SetEnvIf Referer "^http://metal-blood\.com" ref01 #自分のドメインを指定する。
Order deny,allow
Deny from all
Allow from env=ref01
</filesmatch>
httpd.confを編集した人は、Apacheを再起動して有効化しましょう。
直リンクが拒否されてるかの確認は、ロリポップで使わせてもらいました。
自分のサイトの画像のURLを入力して、
画像が表示されず、「Forbidden」が出ればOK
これで、設定が完了したと思っていた・・・
2~3日後、ふと携帯からうちのブログを見てみると、
画像が拒否されている事が判明
調べてみると、上記の設定は携帯には対応しておらず、
機種によっては、拒否されるらしい。。
最近携帯のアクセスも結構多いので、それはまずいと思って、
携帯のキャリアのIPアドレスを許可する設定に変更する事で、
解決できた
最終的にはこんな感じ。
<filesmatch "\.([Jj][Pp][Gg]|jpeg|[Gg][Ii][Ff]|[Pp][Nn][Gg])$">
SetEnvIf Referer "^http://metal-blood\.com" ref01
Order deny,allow
Deny from all
Allow from env=ref01
## DoCoMo
Allow from 210.153.84.0/24
Allow from 210.136.161.0/24
Allow from 210.153.86.0/24
Allow from 210.153.87.0/24
## SoftBank
Allow from 123.108.236.0/24
Allow from 123.108.237.0/27
Allow from 202.179.204.0/24
Allow from 202.253.96.224/27
Allow from 210.146.7.192/26
Allow from 210.146.60.192/26
Allow from 210.151.9.128/26
Allow from 210.169.130.112/28
Allow from 210.175.1.128/25
Allow from 210.228.189.0/24
Allow from 211.8.159.128/25
## AU
Allow from 210.169.40.0/24
Allow from 210.196.3.192/26
Allow from 210.196.5.192/26
########以下省略########
各キャリアのIPアドレス一覧は、
Wikipediaに載ってるので、参考にどうぞ!













カテゴリ:





