差分表示
* サイト全体に対するロボット検索の禁止
* サイト全体に対するロボット検索の抑止 & 特定頁の抑止
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