オリジナルのエラーページ

| コメント(0) | トラックバック(0)

イントロダクション

【2009-11-06 追記】
勘違いがあったので全面書き直し

MTWriteToFileプラグインでフォルダアーカイブ特定のフォルダをフィルタリングという記事の続きです。

サーバーの出力するエラーページ(404.htmlなど)ではあまりにも淋しいので、検索窓や問い合わせ先が書いてあるオリジナルのエラーページをウェブページで作ることになりました。

  1. errorフォルダ(/error)を作ります。
  2. ここにウェブページでエラーページを作ります。 特定のフォルダをフィルタリングという記事のとおり、errorフォルダアーカイブは作成されません。 エラーページにはフォルダーアーカイブはいりませんから、errorフォルダにフィルタリングしたわけです。
  3. .htaccessファイルに、以下の記述を加えてアップロードして完成です。
    ErrorDocument 401 /error/401.html
    ErrorDocument 403 /error/403.html
    ErrorDocument 404 /error/404.html
    ErrorDocument 500 /error/500.html

次の課題

ところがいくつかのサーバーでは、エラーページがrootにいないと出力されませんでした。その場合、rootフォルダーに直接エラーページを作ることにします。また、.htaccessファイルも以下のようになります。

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

さらに、サードバーには目次やらなんやらと、エラーページには要らないウイジットがありますが、フォルダーでフィルタリングが出来ないので、カスタムフィールド(名前:目次に表示、ベースネーム:show_list、テンプレートタグpagedata_show_list、種類:チェックボックス)を作ります。エラーページの編集画面で出来たチェックボックスにチェックを入れます。

次にサイドバーのところで、これを利用して2段階のフィルタリングをかけます。

<mt:SetVarBlock name="showlist"><mt:pagedata_show_list></mt:SetVarBlock>
<mt:If name="showlist" eq="1">

でエラーページ以外のウェブページに目次を出力させます。カスタムフィールドの値が1(チエックボックスにチェックした状態)を上記のコードで取得してフルタリングします。

さらに、そのままではウェブページの目次にエラーページも出力されて並んでしまうので、

<mt:Pages field:show_list="1" lastn="10">
<li><a href="<$mt:PagePermalink$>"><$mt:PageTitle encode_html="1"$></a></li>
</mt:Pages>

とMTPagesタグにfield:カスタムフィールドのベースネームを使ったフィルタリングをします。

<mt:If name="page_template">
<mt:SetVarBlock name="showlist"><mt:pagedata_show_list></mt:SetVarBlock>
<mt:If name="showlist" eq="1">
<h2>目次</h2>
<div class="widget-content">
<ul>
<mt:Pages field:show_list="1" lastn="10">
<li><a href="<$mt:PagePermalink$>"><$mt:PageTitle encode_html="1"$></a></li>
</mt:Pages>
</ul>
</div>
<$mt:Include module="sh_ダウンロード"$>
</mt:If>
<mt:ElseIf name="entry_template">
以下続く...

これで、エラーページ以外には目次が出力されます。ポイントはカスタムフィールドのベースネームとテンプレートタグの使い分けです。

トラックバック(0)

トラックバックURL: http://www.shikidahironori.jp/mt/toraxtukubaxtukuspam.cgi/799

コメントする

このブログ記事について

このページは、しきだ博紀が2009年11月 2日 18:13に書いたブログ記事です。

ひとつ前のブログ記事は「IE PNG Fix で透過PNGを表示」です。

次のブログ記事は「ブログにRetweetボタンをつける」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Twitter Updates

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja