blosxomと404 #2
Posted at 2004-03-07T08:49:00+09:00 in Blosxom
やはり存在しないエントリにアクセスしようとした場合、Statusで404 Not Foundを返したい。いろいろやってみて、404 Not Foundを返しつつ、サイトの独自404ドキュメントと同じものを出力するようにできました。かなり怪しいというか強引。
改造するところはblosxomと404で改造したところと同じで、オリジナルのままだと394行目辺り。そこに以下のコードを挿入します。
# No matching entries treated as a 404 Not Found
if ($ne eq $num_entries) {
if (open(FH, "/www_root/john/public_html/404.html")) {
print header(
-type => 'text/html',
-charset => 'UTF-8',
-status => '404 Not Found',
);
foreach (<FH>) {
print $_;
}
close(FH);
} else {
print redirect("http://example.com/john/404.html");
}
exit;
}
サイトの独自404ドキュメントを開いた後、Statusヘッダを追加してヘッダを普通に出力。その後、サイトの独自404ドキュメントの中身をそのまま出力してやるという感じ。ファイルを開くのに失敗した時は、redirectでフォロー。
マジで強引過ぎ。てか、これで良いのか?やりたいことは出来ているので良いことにしよう。
Weblog archives
by Month
- October, 2006 (9)
- September, 2006 (23)
- August, 2006 (31)
- July, 2006 (8)
- October, 2005 (13)
- September, 2005 (24)
- August, 2005 (26)
- July, 2005 (2)
- June, 2005 (2)
- May, 2005 (13)
- April, 2005 (30)
- March, 2005 (33)
- February, 2005 (13)
- January, 2005 (10)
- December, 2004 (28)
- November, 2004 (27)
- October, 2004 (25)
- September, 2004 (38)
- August, 2004 (52)
- July, 2004 (45)
- June, 2004 (41)
- May, 2004 (48)
- April, 2004 (36)
- March, 2004 (51)
- February, 2004 (55)
- January, 2004 (63)
- December, 2003 (46)
- November, 2003 (63)
- October, 2003 (92)
- September, 2003 (61)
- August, 2003 (93)
- July, 2003 (57)
- May, 2003 (5)
- April, 2003 (35)
- March, 2003 (35)
- February, 2003 (37)
- January, 2003 (62)
- December, 2002 (32)
This page was last modified on 2004-05-03T22:19:29+09:00 (in 0.098 secs).