火曜日, 11月 17, 2009

paper.htmlへの直リンクでアラートを出す

 S25Rホームページには同じ内容の二つの論文ページがある。
 最初に公開したのはanti-spam-system.html。これが検索サイトに拾われ、多くのサイトから直リンクされるようになった。そのため、論文を一瞥しただけで「逆引きできないホストを蹴るとはけしからん」などと的外れな批判をする人たちが現れた。
 そこで、anti-spam-system.htmlにアクセスしたら「このページへ直接来られた方は、目次ページもご覧ください」というアラートがポップアップするようにした(2007年7月15日「びっくりページ」)。論文以外の情報も総合的に見てもらうためである。
 そして、アラートを出さないもう一つの論文ページpaper.htmlを設けた。目次ページから論文へたどった人も「目次ページもご覧ください」とアラートされてはわずらわしいからである。paper.htmlにはロボットよけのおまじないを入れて、検索サイトから直接来ないようにしている。また、目次ページで「左記のページ(paper.html)にはリンクしないでください。論文へのリンクはこちらのページ(anti-spam-system.html)にお願いします」と説明している。paper.htmlに直リンクされては、以前と同じことになってしまうからである。
 ところが、それでもpaper.htmlに直リンクする人が現れた。そこで、対策をとることにした。
 paper.htmlには、私のサイト内のリンクからたどった場合と、リファラ情報がない場合(URLを手動で打ち込んだ場合など)にのみアクセスできるようにする。他サイトからの直リンクで来た場合にはエラー403に落として、その際のエラードキュメントとしてanti-spam-system.htmlを返す。これにより、他サイトからpaper.htmlへの直リンクで来た人は、論文を見ることはできるが、実はそのファイルはanti-spam-system.htmlであって、「目次ページもご覧ください」とアラートされるというわけである。そこから目次ページへたどり、目次からもう一度論文(paper.html)へたどった時には、もうアラートされない。

 設定方法は以下のとおり。
 httpd.confファイルに以下の太字の部分を追記する。
<Directory "ドキュメントルートディレクトリ">

AllowOverride AuthConfig FileInfo Limit

</Directory>

 S25Rホームページのディレクトリには、以下のように記述した.htaccessファイルを置く。
<Files paper.html>
SetEnvIf Referer "^http://www\.gabacho-net\.jp" ShowOK
SetEnvIf Referer "^http://gabacho-net\.jp" ShowOK
SetEnvIf Referer "^http://gabacho\.reto\.jp" ShowOK
SetEnvIf Referer "^$" ShowOK
order deny,allow
deny from all
allow from env=ShowOK
ErrorDocument 403 /anti-spam/anti-spam-system.html
</Files>

 このブログ(http://s25r.blogspot.com/)は他サイト扱いなので、ここからpaper.htmlへ直リンクで行くとアラートされる。お試しください。

http://www.gabacho-net.jp/anti-spam/paper.html

(2010年5月18日追記)
 論文ページをはじめすべてのページに他ページへのインデックスを設け、アラートをやめました。paper.htmlからはanti-spam-system.htmlへ飛ばすようにしました。

0 件のコメント: