[サーバー] .htaccessで画像への直リンクを防止する

記事内にプロモーションを含む場合があります。

まとめサイトやキュレーションサイト、パクリサイトからの画像の直リンクにより、サーバー負荷によってサイトの表示が遅くなったりする被害を防ぐために、.htaccessを設定して、画像を自分のサイトまたは一部のサイト以外からは表示できないようにする方法。

このサイト(https://vivablog.net)の場合は、以下の様な感じになります。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?vivablog.net [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feedly.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://reader.livedoor.com [NC]
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?instapaper.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !bing\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{HTTP_REFERER} !2ch.net [NC]
RewriteCond %{HTTP_REFERER} !getpocket.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

必要に応じて、画像の表示を許可するURLを追記していきます。
ついでに、極悪クローラーのアクセス制限も追記で。

上記の.htaccessで許可していないサイトから直リンクされた場合に、そのサイトに「警告文」を明記した画像を表示するには、RewriteRule \.(jpg|jpeg|png|gif)$ – [F] の部分を以下のように変更します。

RewriteRule \.(jpg|jpeg|png|gif)$ “警告文を明記した画像のURL” [NC,L]

Yetiは韓国NAVERのボット、Baiguspiderは中国百度のボット。
どちらも迷惑な存在です。

SetEnvIf User-Agent "Yeti" deny_user-agent
SetEnvIf User-Agent "Yetibot" deny_user-agent
SetEnvIf User-Agent "Baiduspider" deny_user-agent

order allow,deny 
allow from all 
deny from env=deny_user-agent