画像などのファイルへの直リンクを禁止する方法
Post on:2009年3月11日
.htaccessを使用して、他のサイトが画像などのファイルを無許可で使用するのを禁止する方法をThe Web Squeezeから紹介します。
Stop Image Hotlinking with .htaccess
「.htaccess」に、下記を記述します。
※必要の無い箇所は、削除・修正して使用してください。
※「.htaccess」を修正する場合は、必ずバックアップをしてください。
※有効範囲は、設置ディレクトリの配下です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<textarea name="code" class="html" cols="60" rows="5"> #Stop Image Hotlinking RewriteEngine on RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain2.com [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !google\. [NC] RewriteCond %{HTTP_REFERER} !search\?q=cache [NC] RewriteCond %{HTTP_REFERER} !msn\. [NC] RewriteCond %{HTTP_REFERER} !yahoo\. [NC] RewriteCond %{REQUEST_URI} !^hotlinker\.gif$ RewriteRule \.(jpe?g|png|gif)$ hotlinker.gif [NC,R,L] </textarea> |
下記は、解説です。
#Stop Image Hotlinking
コメントです。
RewriteEngine on
RewriteEngineをオンにします。
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain2.com [NC]
自サイトなど、ファイルへのアクセスを許可するドメインを記述します。http://aaa.bbb.com/, http://bbb.com/aaa/ などの場合は2つとも記述します。
[NC]は、大文字・小文字を区別しないという意味です。
RewriteCond %{HTTP_REFERER} !^$
ファイアウォールやプロクシなどを介した、リファラがブランク時のアクセスを許可します。
必要が無ければ削除してください。
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !msn\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
Googleの画像検索などの検索エンジンを許可します。
上記では、リファラに「google」の文字列を含んでいる場合という意味です。
適宜、追加したり、必要が無ければ削除してください。
RewriteCond %{REQUEST_URI} !^hotlinker\.gif$
ファイルにアクセスがあった際、代わりに表示するファイルです。
必要が無ければ削除してください。
RewriteRule \.(jpe?g|png|gif)$ hotlinker.gif [NC,R,L]
直リンクを禁止するファイルの拡張子の設定です。
pdfやexeなど他の拡張子を追加することも可能です。
代わりに表示するファイルを利用しない場合は、下記を記述します。
RewriteRule \.(jpg|png|gif)$ - [F]
[F]は、「403 Forbidden」を返します。
sponsors