Movable Typeで404 not foundページを作る

Webのリンク切れやURL手打ちミスをすると、404 not foundページというものが表示される。これはWebサーバがそんなページないよと教えてくれているのだが、実に味気ないページだし、そのページに取り残された訪問者は少なからず愕然とした思いにとらわれる。そこで自サイトのデザインにあったエラーページを表示し、5秒後にトップページへとんでいただくことにする。

まず表示したい内容のHTMLファイルを作成し、その中にMETAタグで5秒後にトップページにとぶように書いておく。このページをMovable Typeで生成させよう。

インデックステンプレートのメインページを複製して、404NotFoundページとでも名前をつける。そして画面下方のテンプレートの設定部分で出力ファイル名を404_not_found.htmlなどとする。

肝心の本文は、まず以下のMETAタグを<head>と</head>の間に貼り付ける。URLはもちろん自サイトにあわせてほしい。

<meta http-equiv="refresh" content="5;URL=http://www.grandarbre.net/">

次に、BODY内にお詫び文章を貼り付け、不要な本文などを削除する。このあたり(Movable TypeのCSS構成)はちょっと苦手なのでちゃんと正しい姿を説明する自身がない。とりあえず私が作ったbody全体を載せるので参考にして欲しい。

<body id="<$mt:BlogTemplateSetID$>" class="mt-main-index <$mt:Var name="page_layout"$>">
    <div id="container">
        <div id="container-inner">
            <$mt:Include module="バナーヘッダー"$>
            <div id="content">
                <div id="content-inner">
                    <div id="alpha"> 
                        <div id="alpha-inner">
                        <h1 class="asset-name entry-title">お探しのページはありません。</h1>
                        <h1 class="asset-name entry-title">5秒後にトップページへとびます。</h1>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

ここまでやって保存・再構築をするとドキュメントルートに404_not_found.htmlというファイルが出来ているはずだ。ブラウザのURL直打ちでこれを表示させて、メッセージが表示されたあと5秒後にトップページへとぶことを確認して欲しい。

次にApacheの設定をする。httpd.confの<Directory "/var/www/html">と</Directory>の間に、以下の一行を追加する。

ErrorDocument 404 /404_not_found.html

もしくは.htaccessに記述してもいい。その後service httpd reloadをして変更を反映する。

ここまでで作業は終わり。ブラウザでサーバ名以降のところに適当な文字を打って確認をしてみよう。