差分表示


*  サイト全体に対するロボット検索の禁止
*  サイト全体に対するロボット検索の抑止 & 特定頁の抑止

RIGHT:&date(Y-n-j[lL],2006-02-20);

 Wikiを更新したり、プラグインをいろいろ弄ったりしてる場合、
いきなり本サイトを弄ってお試し、ってわけには行かないので、
実験用の(隠し)サイトを用意したりしてるわけです。

で、これらは基本的に未公開だしリンクさえ張られなければ大丈夫な
んでしょうが、多少、念をいれて、ロボット検索避け、を記述しておきたいなあ
と思うわけです。

~.skin.cgi にてhtmlのhead生成があるのでそこに追記すりゃあえーだろと、
やってみましたが、実はすでに PyukiWiki のほうで Editや検索ページ対策で
全ページにロボット歓迎/避けどちらかの<meta>タグが組み込まれるように
なっていたのでした...~
避け/歓迎を両方かいたらどうなる?... なんてこと考える暇あったら修正で、
ま、判定があるわけだから、逆に言えば、その判定の箇所に変数で判定を1つ
追加すればいいはずだ、で、みてみれば楽チンに。

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();
を頁に書くことで、特定頁のロボット避けになります。

----
#comment