ユーティリティ スポットライトWeb Page Error Toolkit
Lance Whitney
目次
要件
ダウンロードとインストール
Web サーバーの設定
Web.config ファイルの設定
Errorpage ファイルのカスタマイズ
IIS の設定
Web マスター、IT 管理者、または単なる閲覧者であっても、Web 上で作業をする人なら恐怖の HTTP 404 エラー ページに遭遇したことがあるでしょう。このエラー ページは、アクセスしようとした Web ページが見つからない場合に表示されるものですが、このページが表示される理由は、リンクが切れている、ページが存在しない、URL が間違っているなど、さまざまです。しかし、HTTP 404 エラー ページは、あまり有益ではありません。というのも、このページでは、単にページが見つからないということと、その原因として考えられるものをいくつかリストアップしているだけで適切な情報をピンポイントで提示していないからです (図 1 参照)。
図 1 ”ページが見つかりません” エラー
このようなエラー ページに遭遇したら、きっとストレスが溜まるでしょう。しかし、あなたの組織が所有している Web サイトにアクセスしたユーザーにも同じことが起こっているのです。IT 管理者として、ページが見つからないときに、サイトをもっとユーザーにとって使いやすいものにすることはできないのでしょうか。
実は、それは可能です。一般的な 404 エラー ページの代わりに使用するカスタマイズしたエラー ページを用意して、サイトにアクセスしたユーザーが問題に遭遇したときには、有益な詳細情報を提示することができます。このようなエラー ページを設計して実装するのに便利なツールが、マイクロソフトから無償で提供されている Web Page Error Toolkit です。
Web Page Error Toolkit は IIS を利用した ASP.NET アプリケーションです。このツールキットに収録されている ASPX Web ページや他のファイルを変更してから、カスタマイズしたエラー ページを展開するように IIS を設定します。カスタマイズしたエラー ページには、検索結果が表示されるので、エラー発生時には、ページにアクセスしたユーザーが簡単に必要な情報を見つけられるようになります。
既定では、検索結果の表示には Microsoft Live Search エンジンが使用されますが、お好みで別の検索エンジンを使用することもできます。URL や検索文字列に入力ミスがある場合は、URL や検索文字列の候補を表示することもできます。
マイクロソフトの Web サイトでも、サイトにアクセスしたユーザーに有益な情報を提供するために、Web Page Error Toolkit を使用しています。たとえば、microsoft.com サイト内で「Microsoft Office」という用語を検索するつもりが、間違って「Microsoft Ofice」と入力したとしましょう。カスタマイズしたエラー ページでは、図 2 のように「Microsoft Office」という用語を入力するつもりだったのかをたずねるメッセージと適切な文字列を使用した場合の検索結果が一覧表示されます。
図 2 検索結果が表示されるエラー ページ
要件
Web Page Error Toolkit の動作要件は次のとおりです。
- Windows 2000、Windows Vista、Windows XP、Windows Server 2003、または Windows Server 2008
- IIS 5.0 以上
- ASP.NET 2.0 以上
- Visual Studio 2005 以上
ダウンロードとインストール
Web Page Error Toolkit は、Live Services からダウンロードできます。製品ドキュメントでは、WebPageErrorToolkitSetup.msi を Web サイトのルート ディレクトリにダウンロードしてインストールすることを推奨しています。しかし、私は既定のディレクトリ (C:\Program Files\Microsoft\Web Page Error Toolkit) にインストールしてから、必要なファイルやディレクトリをサーバーのルート ディレクトリにコピーすることをお勧めします。このようにすると、ルート ディレクトリに格納するファイルを管理できます。このツールキットをインストールすると、プログラム メニューに Web Page Error Toolkit という名前の新しいフォルダが表示されるようになり、このフォルダには [User Guide] および [Web Page Error Toolkit Files] という 2 つのショートカットがあります。
このツールキットには、次のファイルが含まれています。
Web.config.merge web config ファイルに必要な設定が含まれています。ASP.NET Web サイトでは web.config ファイルに主要な設定が記載されており、この設定はいくつかのセクションで構成されています。
Errorpage.aspx 一般的な 404 エラー ページの代わりに使用するカスタム エラー ページです。
Errorpage.aspx.cs C# で記述された Errorpage.aspx.cs の分離コード ファイルです。
Errorstyle.css エラー ページのスタイル シートです。
UserGuide.docx Microsoft Office Word 2007 ファイル形式のドキュメントです。
Readme.rtf web.config.merge ファイルに対して行う必要がある作業を簡潔に記したドキュメントです。
MSPL license.rtf ソフトウェアのライセンス情報が記載されたドキュメントです。
インストール ディレクトリには、これらのファイル以外に、App_Code、bin、および Web References という 3 つのサブディレクトリが存在します。
Web サーバーの設定
Web サーバーのルート ディレクトリにツールキットをインストールしなかった場合は、まず、ルート ディレクトリに必要なファイルをコピーします。errorpage.aspx、errorpage.aspx.cs、errorstyle.css、および web.config.merge ファイルをルート ディレクトリにコピーします。また、App_Code、bin、および Web References という 3 つのサブディレクトリもコピーします。これら 3 つのサブディレクトリをコピーする際に、Web サーバーのルート ディレクトリに既にこれらが存在している場合があります。しかし、これらのディレクトリは、このツールキット固有のディレクトリなので、既存のファイルと競合することはまずありません。
Web.config ファイルの設定
今度は、web.config ファイルを設定します。Web サーバーのルート ディレクトリに web.config ファイルが存在しない場合は、web.config.merge ファイルの名前を web.config に変更して、既定のファイルとして使用します。ただし、Web サイトが ASP.NET で実行されている場合、web.config ファイルはルート ディレクトリに存在します。その場合、web.config.merge ファイルの内容を既存の web.config ファイルに結合する必要があります。
ただし、その前に web.config.merge ファイルの設定を少し変更する必要があります。テキスト エディタまたは Visual Studio で web.config.merge ファイルを開き、以下のセクションのパラメータを変更します。
ErrorPage.AppID 検索エンジンに Live Search を使用する場合は、まず search.live.com サイトで ID を取得します。それから、取得した ID をこのセクションに入力します。
ErrorPage.CultureInfo 検索対象となるカルチャまたはロケールを入力します。既定値は、en-US で、これは英語 (米国) を表します。
ErrorPage.Domain エラー ページに表示する検索結果を取得するドメイン名を入力します。
ErrorPage.WebSearchResultsNumber エラー ページに表示する検索結果の最大件数を入力します。既定値は 10 で、最大値は 50 です。
ErrorPage.PerformSpellCheck URL や検索文字列の入力にミスがあった場合に URL や文字列の候補を表示するには、ここで True という値を入力します。
ErrorPage.SpellingMessage 入力ミスがあった場合にエラー ページに表示する質問の構文を入力します。既定のテキスト文字列は、Were you looking for {suggestion} instead? (ひょっとして {入力されたテキストに近くて正しいと思われるテキストをここに表示} をお探しですか?) です。
ErrorPage.SearchTitle 正しいと思われる候補で検索しても適切なページを特定できなかった場合に表示するエラー ページのタイトルです。このパラメータを指定しなければ、サイトにアクセスしたユーザーには、"We are sorry, the page you requested cannot be found." (お探しのページは見つかりませんでした) というメッセージが表示されるだけになります。
ErrorPage.PrivacyURL、ErrorPage.SitemapURL、または ErrorPage.CopyrightURL エラー ページのフッターに、これらのページへのリンクを追加することができます。
web.config.merge ファイルの設定を変更したら、既存の web.config ファイルにその設定を結合します。web.config.merge ファイルには、appSettings および system.web という 2 つのセクションがあります。appSettings セクションの設定は、このツールキット固有のセクションなので、このセクションの文字列は web.config ファイルにある同じ名前のセクションに直接コピーして貼り付けることができます。system.web セクションには、customErrors 用の文字列が 1 つ含まれています。web.config ファイル内に customErrors という文字列が既に存在する場合は、その文字列をコメントにし、web.config.merge ファイルの文字列に置き換えてください。既存の web.config ファイルを変更する場合は、必ずバックアップを作成してください。
Errorpage ファイルのカスタマイズ
次は、errorpage.aspx ページを変更します。ただし、このファイルの構成は既に完了しているので、変更が必要な箇所はほとんどありません。必要な作業は "We are sorry; the page you requested cannot be found" (お探しのページは見つかりませんでした) や "See below for results close to your request" (お探しのものに近い結果を以下に示します) などのエラー応答のフレーズを好みのものに変更する程度です。後は、errorstyle.css スタイルシートを変更して、色、フォント、ポイント サイズなどの属性を errorpage.aspx ファイルに合うように微調整できます。
IIS の設定
最後に、新しく用意したエラー ページを参照するように IIS のカスタム エラーの設定を変更します。この手順は使用している IIS のバージョンによって異なります。
IIS 5.0 または IIS 6.0 の場合は、次の手順を実行します。
- IIS マネージャを起動します。
- カスタマイズする Web サイトを選択します。
- Web サイトを右クリックし、[プロパティ] をクリックします。
- Web サイトのプロパティ ウィンドウで [カスタム エラー] タブをクリックします。
- HTTP エラーの一覧を下方向にスクロールして、カスタマイズする HTTP エラー (ここでは HTTP エラー 404) をクリックします。
- [編集] をクリックします。
- [メッセージの種類] ボックスの一覧の [URL] をクリックします。
- [URL] ボックスに「/ErrorPage.aspx」と入力します。[OK] をクリックします。
IIS 7 の場合は、次の手順を実行します。
- IIS マネージャを起動します。
- カスタマイズする Web サイトを選択します。
- [カスタム エラー ページ] をダブルクリックします。
- 状態コードの一覧を下方向にスクロールして、状態コード [404] をダブルクリックします。
- [パスの種類] ボックスの一覧の [URL の実行] をクリックします。
- [パス] ボックスに「/ErrorPage.aspx」と入力します。[OK] をクリックします。
これで、カスタマイズしたエラー ページをテストする準備が整いました。あなたの組織の Web サイトのホーム ページを開いて、アドレス ボックスに表示されている URL に、サブページの URL を追加しますが、誤ったスペルにしてみましょう。修正候補とその検索結果の一覧を含むカスタマイズしたエラー ページが表示されることを確認できます。
カスタマイズしたエラー ページは、サイトにアクセスしたユーザーが探しているページを必ず見つけられることを保証するものではありませんが、ユーザーのストレスを和らげることはできます。
Lance Whitney は、IT コンサルタントであり、トレーナーであり、テクニカル ライターでもあります。Windows のワークステーションおよびサーバーをカスタマイズすることに数えきれないほどの時間を費やしてきました。元々はジャーナリストでしたが、15 年前、IT 業界への転向を実現しました。