駄PHPerの悪知恵/暇人茶屋

Blogタイトルはどうでもいいので。がる・ザ・ジョーカーの個人Blog。

【.htaccess】ウェブ魚拓を拒否する方法(2011年現在)

# Web魚拓拒否
SetEnvIf User-Agent "^Mozilla\/4.0 \(compatible; MSIE 7.0; Windows XP\)$" deny_ua

order allow,deny
allow from all
deny from env=deny_ua

軽く解説

.htaccessのSetEnvIfは正規表現で書くので、エスケープを適切にします。

「これで大丈夫なの?」
「正規のWindowsXP + MSIE 7.0ユーザが巻き込まれない?」


ウェブ魚拓のエージェント(ブラウザ情報)
Mozilla/4.0 (compatible; MSIE 7.0; Windows XP)

>正規ユーザ(だとしたら)のエージェント(ブラウザ情報)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)

……おわかりですよね。Windows XPってユーザ情報吐くのは『通常のブラウザでは無い』んです。
あるとしても、昔のOperaの偽装ユーザエージェントとかでしょう(爆)

通常ユーザとの違いは、確認くんとかでウェブ魚拓のUSER AGENTを調べたりしましょう。
IP/HOSTは変動しているようだし、「今の所は」コレで制限できます、ということで。

>2006年〜2009年ごろのUSER AGENT?
>Megalodon(http://megalodon.jp/)
>2009年後半以降のUSER AGENT?(暫定)
Mozilla/4.0 (compatible; MSIE 7.0; Windows XP)
http://megalodon.jp/?url=http%3A%2F%2Fwww.ugtop.com%2Fspill.shtml&type=simple
ほとんどの正規ユーザが、Windows NT 5.1; 以降に.NET CLR 1.0.****;やら色々くっつけてます。
ウェブ魚拓のエージェントは、短すぎなんですね。たしか、TrendMicroもMSIE吐くけど短め。

正攻法〜オフィシャルなやり方

http://megalodon.jp/pc/page/qa#prohibitcache

キャッシュの取得を禁止するにはどうすればいいですか?
(1) 以下のMETAタグをHEADタグ内に書く

(2) ルートディレクトリにrobots.txtを設置して、"Megalodon"が取得不可能なパスを指定する
なお、robots.txtはキャッシュしておりますので、変更が反映されるまで長くて3日かかります。
とのことです。NOINDEX,FOLLOWだとどうなのかわかりませんが。
robots.txtの場合は、

User-agent: Megalodon
Disallow: /
で大丈夫なはず。