※記事内に商品プロモーションを含む場合があります
時々来る、迷惑なアクセス画像への直接アクセス。
BLOGEでは画像直リンクで来た場合直リンク禁止ページを表示する様にしています。
画像直リンクとは
ブログやサイトの画像へ他サイトが直接リンクを貼る事。
画像だけ抜き出すのでアクセス解析でも分からないので迷惑です。
なのでBLOGEでは.htaccessを使ってリダイレクトする様にしています。
直リンクの判別に使われるリファラー
直リンクかサイト内のリンクかはリファラーを見て判別します。
BLOGEの場合、URLにb.eax.jpがあったら画像を表示して
違う場合は画像を表示せず、直リンク禁止ページを表示します。
ただし、注意が必要なのはリファラー無しの場合。
多くの場合、アドレスバーに入力して直接アクセスするのですが、
頭の良いサイトはリファラーを消して表示できる様にしてあります。
WordPressプラグインでは?
基本的にプラグインでは対処出来ません。
理由はファイルが存在するからです。
ファイルが存在しない場合はWordpressの/index.phpに処理が渡りますが、
画像ファイルが存在する場合はWordpressに処理を渡さずに画像を表示して
終わってしまいます。
なのでApache側で動く.htaccessを使います。
直リンクを禁止する5行のコード
RewriteEngine On RewriteBase / RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://b.eax.jp/ [NC] RewriteRule ^(.*)\.(jpg|png)$ https://b.eax.jp/dlink/ [R=301,L]
解説
BLOGEを例に解説します。
RewriteEngine On
RewriteEngine をOnにします。
RewriteBase /
リライトベースを設定します。このスラッシュだけの場合https://b.eax.jp/下となります。
RewriteCond %{HTTP_REFERER} !^$
リファラーが無い場合はアクセスを許可します。
上にある様に、リファラー無しの場合も拒否したければこの行は消します。
RewriteCond %{HTTP_REFERER} !^https://b.eax.jp/ [NC]
URLにhttps://b.eax.jp/を含むページから参照された場合は表示を許可します。
後ろのNCは大文字小文字を区別せず判別します。
RewriteRule ^(.*)\.(jpg|png)$ https://b.eax.jp/dlink/ [R=301,L]
リライトルールの設定、jpgとpngファイルへアクセスがあった場合、
https://b.eax.jp/dlink/へリダイレクトします。
R=301は301リダイレクトを行い、Lはその場で判定を終了させます。
Lは付けた方が良さそうです。
後は自分のサイトに合わせて編集して下さい。
.htaccessのファイル名と置き場・使えるサーバ
.htaccessのファイル名は.htaccessです。
Windowsではドットより前は無しに出来ないのでアップロード後ファイル名を編集して下さい。
置き場は、リライトベースに置いて下さい。
アップロード時はアスキーモードでアップロードして下さい。
使えるサーバーはApacheを使っているサーバーです。
nginxやIISなどのサーバーでは使えません、Apache(アパッチ)限定です。
使えるレンタルサーバーはさくらやロリポップであれば使えると思います。
ただし、レンタルサーバーの中には.htaccessの使用を許可してない場合が
あるので注意して下さい。
まとめ
直接アクセス(リファラー無し)も表示したく無い場合は3行目は削除して下さい。
ただし、まとめブログなどに画像URLのみ載ると画像アクセスが増えて
記事へアクセスされないので、特定の画像から記事へ飛ばす記事を次は書きます。
以上、@eaxjpでした!