レ点腫瘍学ノート

pukiwikiカスタマイズ箇所/2019/pukiwikiで存在しないページへのアクセスを404にする の履歴差分(No.1)


#author("2020-05-02T11:02:48+09:00;1970-01-01T18:00:00+09:00","default:tgoto","tgoto")
Pukiwikiのデフォルトでは存在しないページにアクセスされた場合はnewpageプラグインが作動してそのタイトル名の新しいページを作成する画面に遷移してしまう。これを避けるために、plugin/read.inc.phpに対して下記の工夫を行った。" } else if (is_pagename($page)) { "の下にある2行を削除し、そのあとに6行を追加する。

>$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))
> );

これだけだとnewpageを作ろうとした時も存在しないページと判定されてしまって編集画面に入れないので、plugin/newpage.inc.phpも以下のように変更する。つまり、newpage変種画面にcmd=readではなくcmd=editで入るように設定する。

> pkwk_headers_sent();
> header('Location: ' . get_base_uri(PKWK_URI_ROOT) . '?cmd=read&page=' . $r_page . '&refer=' . $r_refer); //変更前

> pkwk_headers_sent();
> header('Location: ' . get_base_uri(PKWK_URI_ROOT) . '?cmd=edit&page=' . $r_page . '&refer=' . $r_refer); //変更後