遂に、このブログの記事が他サイトに丸々コピーされるという問題が発生してしまいました。

テキスト部分はもちろん完全なコピー。
画像も直リンクされていたのでかなり悪質です。
放置しておくわけにもいかないので、対策を考えてみました。

具体的には、[.htaccess]を設置して「mod_rewrite」を使用することになります。

実際に使用したコードが以下。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sample.com [NC]
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} !msn. [NC]
RewriteRule .(jpg|png|gif|svg|js|css)$ – [NC,F,L]

それぞれのコードの解説です。

RewriteEngine on
「RewriteEngine」をオンにします。
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sample.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} !msn. [NC]
各検索エンジンや、画像検索時のアクセスを許可しています。
上記はリファラに「google」や「bing」の文字列を含んでいる場合という意味で、適宜、追加したり、必要が無ければ削除してください。
RewriteRule .(jpg|png|gif|svg|js|css)$ – [NC,F,L]
拡張子が「.jpg」、「.png」、「.gif」、「.svg」、「.js」、「.css」のファイルへのアクセスを禁止しています。

行の末尾にあるオプションに意味は以下になります。

  • [NC] … 大文字・小文字を区別しない。
  • [F] … 強制的にアクセス禁止に。HTTP レスポンスの「403 : Forbidden」を返します。
  • [L] … 書き換えが行われたら終了します。書き換えた URL が後に続くルールによって、これ以上書き換えられることがないようになります。

なお、有効範囲は[.htaccess]設置ディレクトリの配下になります。

他に注意点として特筆すべきは、「[.htaccess]を修正する場合は必ずバックアップを保存する」という点。
また、[.htaccess]の知識がない方は無闇に設置しないほうが無難です。