サイト全体に対するロボット検索の抑止 & 特定頁の抑止
2006-2-20[月]
Wikiを更新したり、プラグインをいろいろ弄ったりしてる場合、 いきなり本サイトを弄ってお試し、ってわけには行かないので、 実験用の(隠し)サイトを用意したりしてるわけです。 で、これらは基本的に未公開だしリンクさえ張られなければ大丈夫な んでしょうが、多少、念をいれて、ロボット検索避け、を記述しておきたいなあ と思うわけです。
~.skin.cgi にてhtmlのhead生成があるのでそこに追記すりゃあえーだろと、
やってみましたが、実はすでに PyukiWiki のほうで Editや検索ページ対策で
全ページにロボット歓迎/避けどちらかの<meta>タグが組み込まれるように
なっていたのでした... info/setup.ini.cgi か pukiwiki.ini.cgi に $::no_robots=1; のようなロボ禁指定の変数を用意しておきます。 lib/wiki.cgi 中の sub meta_robots 内の最初のif文の||条件、 sub meta_robots { my($cmd,$pagename,$body)=@_; my $robots; my $keyword; if($cmd=~/edit|admin|diff|attach/ || $::form{mypage} eq '' && $cmd!~/list|sitemap|recent/ のようになっている || で設定している条件の一つとして || $::no_robots != 0 を追加します。 また lib/autometarobot.inc.pl 中の meta_robots にも同様な処理があるので、 そちらにも || $::no_robots != 0 を追加します(役割的にこちらはしなくても問題なさそうだけど)。 で、とりあえず、 <meta name="robots" content="NOINDEX,NOFOLLOW,NOARCHIVE"> <meta name="googlebot" content="NOINDEX,NOFOLLOW,NOARCHIVE"> がhtmlのヘッダ部に入るようになります。
特定ページ対するロボット検索の禁止上記ルーチンを組み込んだ状態で、ただし $::no_robots=0; にして、以下の内容 sub plugin_no_robots_convert { $::no_robots= 1; return ' '; } 1; __END__ のプラグイン(no_robots.inc.pl)を用意すれば、 #no_robots(); を頁に書くことで、特定頁のロボット避けになります。 |