検索の際の「不正なクエリ」を表示しないようにする

MTQに以下のような質問がありました。

mt-search.cgiでサイト内検索を行う際に、検索窓に全角・半角スペースや半角ダブルクォーテーションマーク、記号を入力するとMTのエラー画面(『不正なクエリ―です』)に遷移してしまいます。
例えばサイトトップへリダイレクトさせたり、元の画面にリダイレクトさせたり、できればMTのエラー画面を出さないようにしたいのですが、可能でしょうか。

そこで、Movable Typeのコアを直接に書き換えて対処する方法を紹介します。

mt-search.cgiでの検索処理の本体は、Movable Typeのインストール先→「lib」→「MT」→「App」ディレクトリにある「Search.pm」というファイルで行われます。
Movable Type 6.0.4の場合、このファイルの中で、2か所を以下のように書き換えます。
「リダイレクト先」の部分を、リダイレクト先ページのアドレスに置き換えます。
なお、Movable Type 6.0.4より前のバージョンの場合、書き換える行の位置が若干異なりますので、同様の箇所を検索してください。

442行目付近

書き換え前

return $app->errtrans( "Invalid query: [_1]", $app->errstr )
    unless defined $count;

書き換え後

return $app->redirect('リダイレクト先')
    unless defined $count;

530行目付近

書き換え前

return $app->errtrans( 'Invalid query: [_1]',
    encode_html($search_string) )
    if ( ( !$parsed || !(%$parsed) ) && !$app->param('archive_type') );

書き換え後

return $app->redirect('リダイレクト先')
    if ( ( !$parsed || !(%$parsed) ) && !$app->param('archive_type') );

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください