はじめに
Webへのアクセスでページがない場合や、URLをミスタイプしたときに出る404エラー。このエラーを出すより、より近いインデックスファイルに誘導してあげる方が実際に閲覧している人に親切ではありませんか?
今回はその対応方法を見てみましょう。
対象読者
- Webサーバ管理者
- Webアプリケーション開発者
- Webサイト作成者
必要環境
- Windows XP+IIS 5.1+.NET 2.0
- Windows Server 2003+IIS 6.0+ASP.NET
- Windows Vista+IIS 7.0+ASP.NET
IISバージョンごとに設定しないといけない項目が微妙に変化するので、それらをサポートしますが、ASP.NETが動くところまでの設定は事前に行っておいてください。
- 開発テストを行う場合:
目的
存在しないURLを指定したときに下記のような画面を見たことはありませんか?
このようなページは残念ながら閲覧しようとしたユーザーに何の利益ももたらしません。IISではカスタマイズされたHTTP404エラーを表示します。
しかし結局ファイルが見つからないのは変わらないため、ユーザーにメリットがない点は同じです。
一度でも作成したファイルは、どこかでリンクされている可能性があります。それらのリンクを自サイト内の適切なページへジャンプさせるために、IIS上でリダイレクト先を設定することができますが、確実に設定できればよいのですが忘れてしまうこともあります。
他にも、例えば次のようなURLをタイプしてユーザーがWebサイトに訪問してきたと仮定します。
http://localhost/Naka/HttpRedirector/1.aspx
ここで、「1.aspx」というファイルが存在しない場合、
http://localhost/Naka/HttpRedirector/
にジャンプして欲しいと思いませんか? また、この「HttpRedirector」というフォルダがなければ、
http://localhost/Naka/
にジャンプして欲しいと思いませんか? それでは解決策を作成しましょう。
IISでアプリケーションを設定しよう
今回は「testredirect」というアプリケーションを設定し、それを利用することにします。
ASP.NETのバージョンが2.0.50727になっていることを確認しておいてください。