画像の直リンクを禁止して別サイトで画像を表示させない[.htaccess]
ブログやホームページを公開していると、画像などのファイルを直リンクして、別サイトで利用されている場合があります。そんな時の対処方法をご紹介します。
画像などの直リンクを禁止するには「.htaccess」を使用します。
.htaccessとは
この「.htaccess」とはWebサーバーのApacheの設定ファイルとなります。この設定ファイルがあるディレクトリは「.htaccess」の設定で動作します。
「.htaccess」の設定にはアクセス制限、 Basic/Digest認証などがあります。
.htaccessの設定
次の例ではHTTPリファラ(wikipedia)に「http://www.petitmonte.com/」が含まれる。または、リファラが空の場合を除き画像などのファイルを読み込む事はできません。
「.htaccess」ファイルがあるフォルダでこの設定が有効となります。画像がある「images」や「img」などのフォルダに設置する事が一般的です。
SetEnvIf Referer "^http://www\.petitmonte\.com/" ref01 SetEnvIf Referer "^$" ref02 Order deny,allow Deny from all allow from env=ref01 allow from env=ref02
1行目は「http://www.petitmonte.com/」を定義しています。URLの先頭には必ず「^」を付加して「.」の前には「¥」を付加します。(いずれも英字)
2行目はリファラが空の場合を定義しています。
3行目はallow(許可)、deny(拒否)のOrder (順序)を定義。
4行目は全てのアクセスを拒否。
5行目はリファラに「http://www.petitmonte.com/」が含まれる場合はアクセスを許可する
6行目はリファラが「空」の場合はアクセスを許可する
※6行目の末尾は必ず改行コードを挿入します。古いサーバーの場合は改行がないと認識しない場合があります。
※ブラウザやセキュリティソフトの設定によってリファラが常に空の場合がありますので、空のアクセスも許可しています。
※htaccessファイルの改行コードは基本は「LF」ですが、最近は「CR+LF」、や「CR」でも動作するようです。万が一、動作しない場合は改行コードをいずれかに変更してみてください。
画像検索で表示して欲しい場合
Google/Yahoo/Bingの画像検索に対応する場合は、次のようにするとアクセスの許可を与えます。
SetEnvIf Referer "^http://www\.petitmonte\.com/" ref01 SetEnvIf Referer "^$" ref02 SetEnvIf Referer "google" ref003 SetEnvIf Referer "yahoo" ref004 SetEnvIf Referer "bing" ref005 Order deny,allow Deny from all allow from env=ref01 allow from env=ref02 allow from env=ref03 allow from env=ref04 allow from env=ref05
ただし、URLを指定しているわけではありませんので、フォルダ名などにgoogleなどが含まれると画像などのファイルにアクセスできるようになってしまいます。
以上となります。