futomiアクセス解析CGIのリクエストレポートでタイトルが表示されないで、ドキュメントルートが異なるサイトのリクエストレポートのページタイトルを取得する方法を書きましたが、それでも、まだ完全ではありませんでした。
例えば、
http://blog.karakuriya.biz/developers/perl/
のように、index.html も何もなく、スラッシュ(/)で終わるURLの場合、ページタイトルが表示されません。
これもソースコードを見てみると、URLからそのHTMLファイルの絶対パスを求めているのですが、URLがスラッシュで終わっているので、当然、そのURLに該当するファイルはありません。URLがindex.htmlで終わっていれば、該当するファイルは見つけられます。
なので、ここはソースコードをちょっと変更。
acc.cgiの1764行目あたりに
$Path = '/'.$1;
$HtmlFile = $ENV{DOCUMENT_ROOT}.$Path;
}
if ($HtmlFile =~ /\/$/) {
$HtmlFile .= "index.html";
}
unless(-e $HtmlFile) {return ''};
の真ん中の3行を追加します。つまり、URLがスラッシュで終わっていたら、index.html を付加するということです。
これで、ページタイトルが全て表示されました。
でも、そもそも、この処理は /conf/config.cgi の DIRECTORYINDEX でやってくれてもよさそうなものだと思うが。。。

コメントする