.net column

.NET開発者のためのブログメディア
404

ASP.NETの404リダイレクトページをカスタマイズする方法

2020年04月15日

Webアプリケーション開発において、意図しないアクセスが行われた時などにはエラーページを表示する必要があります。ほとんどの場合は、アドレスなどを間違えて存在しないページにアクセスしようとする、404のエラー番号が多いでしょう。ASP.NETでは、IISと連携する上でこのエラーページのリダイレクト先を指定する必要があります。

SE
404のエラーページの設定が上手くいかないのはなぜでしょう?
PL
IISではリダイレクト先をconfigファイルに設定しておかないといけないんです。注意が必要ですね。

404リダイレクトの仕組み

404のエラーコードは、指定したアドレスのページが存在しない場合に返されるエラーコードです。エラーコードが返されると、アプリケーション側で規定されたエラーページへ遷移するようになっており、エラーであることがユーザーに分かるように表示されます。

何も設定していない場合に備えてデフォルトのエラーページは用意されていますが、よりユーザー志向を高めるためにもオリジナルのエラーページを用意することが望ましいです。

エラーページのカスタマイズ

エラーページのリダイレクト先を指定するためには、web.configファイルの中身を変更する必要があります。表示する内容は、エラーが発生してページの遷移先が存在しないこと、アドレスを確かめて再実行を促すなど、ユーザーが次の操作を行いやすいようなメッセージにします。また、必要に応じてトップページのリンクを張るなど、Webアプリケーションの利用に即したものにするのが良いです。

現在では、Ajaxを用いた非同期通信を行うのが主流になっています。そのため、サーバーサイドでのエラーで対象ファイルが見つからない場合には、クライアントサイドで設定したリダイレクト設定先が無効になるため、サーバーサイドであるIIS側でもリダイレクト先の設定をしなければなりません。例えば、ASP.NET MVC上では、public属性で定義されたactionresult内で、NotFoundメソッドを呼び出した場合に起こります。

ASP.NETとIISのエラーページへのリダイレクト設定

Pathにはリダイレクト先を指定します。

IIS側でも、ASP.NET内でエラーページを返す際にリダイレクト設定しておく必要があります。

SE
用意したエラーページのURLをconfigファイルに書くだけなんですね。
PL
404以外にもエラー番号ごとに遷移先をカスタマイズできるので、利用しやすいページ作りをするなら、それぞれのエラーに合わせたページを設定すると良いですよ。

エラーコードごとに適切なエラーページを表示する

いわゆるソフト404エラーのように、見た目が404エラーページを表示するように設定され、実際には別のエラーコードであるというリダイレクト方法は、公式にも推奨されていません。それぞれのエラー番号は、何かしらの不具合が発生したことにより返されるものです。ユーザーが次の対処を間違わないようにするためにも、それぞれのエラー内容に即したオリジナルのエラーページを用意し、リダイレクト先に設定するようにしましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)