TOP > カテゴリ > インターネット・ブログ >

画像の直リンクを禁止して別サイトで画像を表示させない[.htaccess]

ブログやホームページを公開していると、画像などのファイルを直リンクして、別サイトで利用されている場合があります。そんな時の対処方法をご紹介します。

画像などの直リンクを禁止するには「.htaccess」を使用します。

.htaccessとは

この「.htaccess」とはWebサーバーのApacheの設定ファイルとなります。この設定ファイルがあるディレクトリは「.htaccess」の設定で動作します。

「.htaccess」の設定にはアクセス制限、 Basic/Digest認証などがあります。

Wikipedeiaで補足: .htaccess

.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などが含まれると画像などのファイルにアクセスできるようになってしまいます。

以上となります。





関連記事



公開日:2016年05月17日
記事NO:01958