ページがないときは404を出力 の変更点
存在しないページが閲覧されたとき((cmd=read または ?hoge での閲覧時))は、レスポンスヘッダに404を出力します。
*注意
-PukiWiki本来の動作からは外れます。~
本来は存在しないページが閲覧されると編集フォームに移動するようになっていますが、~
このパッチを当てるとエラーページが出力されるようになります。
((PukiWiki上の未編集のWikiNameやBracketNameへの引数はcmd=readではなく、cmd=editなので、使用上は問題ないと考えています。))
-一部、[[ページをディレクトリに偽装>PukiWiki/改造/静的コンテンツに偽装/ページ#dir]]が前提を前提にしている部分があります。
*パッチ (PukiWiki1.4.4)
#code(diff,nonumber,nooutline){{
--- plugin/read.inc.php.orig 2004-08-04 22:43:23.000000000 +0900
+++ plugin/read.inc.php 2004-10-26 17:44:14.000000000 +0900
@@ -8,7 +8,7 @@
function plugin_read_action()
{
- global $vars, $_title_invalidwn, $_msg_invalidiwn;
+ global $vars, $_title_invalidwn, $_msg_invalidiwn, $_msg_notfound;
$page = isset($vars['page']) ? $vars['page'] : '';
@@ -22,8 +22,12 @@
return do_plugin_action('interwiki'); // InterWikiNameを処理
} else if (is_pagename($page)) {
- $vars['cmd'] = 'edit';
- return do_plugin_action('edit'); // 存在しないので、編集フォームを表示
+ header('HTTP/1.0 404 Not Found');
+ return array(
+ 'msg'=>'NOT FOUND',
+ 'body'=>str_replace('$1', "/?cmd=edit&page=$page",
+ str_replace('$2', "../", $_msg_notfound))
+ );
} else {
// 無効なページ名
}}
#code(diff,nonumber,nooutline){{
--- plugin/newpage.inc.php.orig 2004-07-31 12:09:20.000000000 +0900
+++ plugin/newpage.inc.php 2004-10-26 17:43:18.000000000 +0900
@@ -43,7 +43,7 @@
get_fullname($page,$vars['refer']) : $page);
$r_refer = rawurlencode($vars['refer']);
- header("Location: $script?cmd=read&page=$r_page&refer=$r_refer");
+ header("Location: $script?cmd=edit&page=$r_page&refer=$r_refer");
die();
}
?>
}}
#code(diff,nonumber,nooutline){{
--- ja.lng.orig 2004-04-04 00:27:07.000000000 +0900
+++ ja.lng 2004-10-26 17:23:12.000000000 +0900
@@ -32,7 +32,7 @@
確認後、[ページの更新]を押してください。<br />';
$_msg_invalidiwn = '$1 は有効な $2 ではありません。';
$_msg_invalidpass = 'パスワードが間違っています。';
-$_msg_notfound = '指定されたページは見つかりませんでした。';
+$_msg_notfound = '指定されたページは見つかりませんでした。<br /><a href="$1">編集</a>するか、<a href="$2">親ディレクトリ</a>にアクセスしてみて下さい。';
$_msg_addline = '追加された行は<span class="diff_added">この色</span>です。';
$_msg_delline = '削除された行は<span class="diff_removed">この色</span>です。';
$_msg_goto = '$1 へ行く。';
}}
*パッチの理由
Googleのキャッシュが消えない原因はこれではないかと思ったので、~
場当たり的に修正しました。というか、このサイトの内容は全て場当たり的です :p
*Amazon
#amazon(4798109223,left)
#amazon(479733245X,left)
#amazon(4798119865,left)