namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
HTML detection
- From: SHIOZAKI Takehiko <takehi-s@xxxxxxxxxxx>
- Date: Wed, 25 Nov 1998 17:34:13 +0900
- X-ml-name: namazu
- X-mail-count: 01657
塩崎です。
mknmzのロボット除けのところで、$DEFAULT_FILEが考慮されていないことに気づ
きました。
HTMLファイルの検出を何ヶ所も書くのも何なので、こっそりと(嘘)例のCGIのも
含めてサブルーチンにしてみました。お試しください。
# でも、CGIの出力がHTMLとは限らないんだよなあ...
*** mknmz.pl.orig Sun Nov 1 23:34:41 1998
--- mknmz.pl Wed Nov 25 16:11:26 1998
***************
*** 40,46 ****
@FList, $FOOTERFILE, $FOOTERFILE_, $FOOTER_MSG_JA, $DeletedFilesCount,
$FOOTER_MSG_EN, $HASH, $HASH_, $HEADERFILE, $HEADERFILE_,
$HEADER_MSG_JA, $HEADER_MSG_EN, $HELPER_EXTENSIONS, $UpdatedFilesCount,
! %HELPER_PROGRAMS, $HTML_SUFFIX, $HiraganaOpt, $INDEX, $NoDeleteProcessing,
$INDEXINDEX, $INDEXINDEX_, $INDEX_, $INTSIZE, $INVALID_LENG,
$KAKASI, %KeyIndex, $LITTLEENDIAN, $LOCKFILE, $LOCKFILE2, $TOTALFILESCOUNT,
$LOCKMSGFILE, $LOCK_MSG_JA, $LOCK_MSG_EN, $LOGFILE, $LastKeyN,
--- 40,46 ----
@FList, $FOOTERFILE, $FOOTERFILE_, $FOOTER_MSG_JA, $DeletedFilesCount,
$FOOTER_MSG_EN, $HASH, $HASH_, $HEADERFILE, $HEADERFILE_,
$HEADER_MSG_JA, $HEADER_MSG_EN, $HELPER_EXTENSIONS, $UpdatedFilesCount,
! %HELPER_PROGRAMS, $HTML_SUFFIX, $CGI_DIR, $HiraganaOpt, $INDEX, $NoDeleteProcessing,
$INDEXINDEX, $INDEXINDEX_, $INDEX_, $INTSIZE, $INVALID_LENG,
$KAKASI, %KeyIndex, $LITTLEENDIAN, $LOCKFILE, $LOCKFILE2, $TOTALFILESCOUNT,
$LOCKMSGFILE, $LOCK_MSG_JA, $LOCK_MSG_EN, $LOGFILE, $LastKeyN,
***************
*** 231,237 ****
$DENY_FILE = '%OPT_DENY_FILE%';
## HTML の拡張子 .htm, .html, .shtml, .phtml, .html.en, .html.ja, .asp など
! $HTML_SUFFIX = 'html?|[ps]html|html\.[a-z]{2}|asp';
## MHonArc のメッセージ・ファイル
$MHONARC_MESSAGE_FILE = 'msg\d{5}\.html(?:\.gz)?';
--- 231,240 ----
$DENY_FILE = '%OPT_DENY_FILE%';
## HTML の拡張子 .htm, .html, .shtml, .phtml, .html.en, .html.ja, .asp など
! $HTML_SUFFIX = 'html?|[ps]html|html\.[a-z]{2}|asp|cgi';
!
! ## CGI のディレクトリ /cgi-bin/, /htbin/ など
! $CGI_DIR = '/(cgi-bin|htbin)/';
## MHonArc のメッセージ・ファイル
$MHONARC_MESSAGE_FILE = 'msg\d{5}\.html(?:\.gz)?';
***************
*** 427,435 ****
print ERRORSFILE "$cfile $err\n";
return 0; # エラーの場合は 0 でリターン
}
! if ($RobotExcludeOpt && $cfile =~ /\.($HTML_SUFFIX)$/i &&
$contents =~ /META\s+NAME\s*=\s*([\'\"]?)ROBOTS\1\s+[^>]*CONTENT\s*=\s*([\'\"]?).*?(NOINDEX|NONE).*?\2[^>]*>/i) {
! $err = "is excluded because of <META> element.\n";
print $file_count + $file_segment . " $url $err\n" unless $QuietOpt;
print ERRORSFILE "$cfile $err\n";
return 0; # エラーの場合は 0 でリターン
--- 430,438 ----
print ERRORSFILE "$cfile $err\n";
return 0; # エラーの場合は 0 でリターン
}
! if ($RobotExcludeOpt && ishtml($cfile) &&
$contents =~ /META\s+NAME\s*=\s*([\'\"]?)ROBOTS\1\s+[^>]*CONTENT\s*=\s*([\'\"]?).*?(NOINDEX|NONE).*?\2[^>]*>/i) {
! $err = "is excluded because of <META> element.";
print $file_count + $file_segment . " $url $err\n" unless $QuietOpt;
print ERRORSFILE "$cfile $err\n";
return 0; # エラーの場合は 0 でリターン
***************
*** 623,629 ****
analize_rcs_stamp();
$mhonarc_opt = 1 if
(!$NoMHonArcOpt && $$contents =~/^$MHONARC_HEADER/);
! if ($cfile =~ /\.($HTML_SUFFIX)$/i || $cfile =~ /($DEFAULT_FILE)$/) {
mhonarc_filter($contents, $weighted_str)
if $mhonarc_opt;
html_filter($contents, $weighted_str, $title, $fields, $headings);
--- 626,632 ----
analize_rcs_stamp();
$mhonarc_opt = 1 if
(!$NoMHonArcOpt && $$contents =~/^$MHONARC_HEADER/);
! if (ishtml($cfile)) {
mhonarc_filter($contents, $weighted_str)
if $mhonarc_opt;
html_filter($contents, $weighted_str, $title, $fields, $headings);
***************
*** 1440,1446 ****
my ($tmp) = @_;
my ($url);
$url = $tmp;
! $url =~ s!(.*)\Q$PSC\E($DEFAULT_FILE)$!$1/!; #省略可能なファイル名なら削除
$url =~ s/\Q$TARGET_DIR$PSC\E/$URL_PREFIX/;
if (($SYSTEM eq "MSWin32") || ($SYSTEM eq "os2")) {
# Shift_JIS の漢字を考慮して \ を / に変換 [09/26/1998]
--- 1443,1449 ----
my ($tmp) = @_;
my ($url);
$url = $tmp;
! $url =~ s!(.*)\Q$PSC\E($DEFAULT_FILE)(\?.*)?$!$1/$3!; #省略可能なファイル名なら削除
$url =~ s/\Q$TARGET_DIR$PSC\E/$URL_PREFIX/;
if (($SYSTEM eq "MSWin32") || ($SYSTEM eq "os2")) {
# Shift_JIS の漢字を考慮して \ を / に変換 [09/26/1998]
***************
*** 1655,1661 ****
my ($name) = @_;
push(@FList, $name) if
( (! /^(($DENY_FILE)(\.gz|\.Z)?)$/i) &&
! /^(($TARGET_FILE)(\.gz|\.Z)?)$/i && -f $_ && -r $_);
}
# インデックスの追加の準備を行う
--- 1658,1664 ----
my ($name) = @_;
push(@FList, $name) if
( (! /^(($DENY_FILE)(\.gz|\.Z)?)$/i) &&
! /^(($TARGET_FILE)(\.gz|\.Z|\?.*)?)$/i && -f $_ && -r $_);
}
# インデックスの追加の準備を行う
***************
*** 2773,2778 ****
--- 2776,2791 ----
51770, 17655, 11744, 32966, 48622, 23162, 46352, 65423
]
);
+ }
+
+ # 対象ファイルが HTML かどうかを判別
+ sub ishtml ($) {
+ my ($cfile) = @_;
+
+ ($cfile =~ /\.($HTML_SUFFIX)$/i ||
+ $cfile =~ /($DEFAULT_FILE)$/ ||
+ $cfile =~ /\?/ ||
+ $cfile =~ /($CGI_DIR)/i);
}
# find.pl をほんの少し修正して Symbolic link なディレクトリもたどるようにした
--
ただし、私は耳鼻咽喉が弱いので、会議は禁煙にしてください。
--
塩崎 毅彦(SHIOZAKI Takehiko) <takehi-s@xxxxxxxxxxx>
Technical Center, ASCII CORPORATION