apacheに限らず、ホームページを閲覧した時に、ページのリンク切れやサーバの無応答などでエラー画面を見たことがありませんか?
大抵は、使用しているブラウザ(Internet ExplorerやNetscape等)が該当する操作のメッセージを表示しますが、apacheのデフォルト状態では以下の様な画面が表示されます。
味気がないのでオリジナルのエラーページ画面を作る方法を紹介します。


apache設定ファイルの変更
# vi /etc/httpd/conf/httpd.conf
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<Directory "/var/www/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
以下がエラーページのドキュメント(htmlです。)
# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
# ErrorDocument 410 /error/HTTP_GONE.html.var
# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
以下を追加します
エラーコード404(Not Found)をカスタマイズページに変更
ErrorDocument 404 /error/404.html
|
エラーコード404(Not Found)のカスタマイズページの作成
# vi /var/www/error/404.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>ページが見つかりません</TITLE>
</HEAD>
<BODY>
<CENTER><H3>指定されたページが見つかりませんでした。</H3>
<H4>Error Code 404(HTTP_NOT_FOUND)</H4>
<P>ページが削除されたか、リンク切れの可能性があります。<BR>
または、入力したアドレスに間違いがある可能性があります。</P></CENTER>
<CENTER>恐れ入りますが、下記のメールでご連絡下さい。
<ADDRESS><A href="mailto:webmaster@kajuhome.com">webmaster@kajuhome.com</A></ADDRESS>
</CENTER>
</BODY>
</HTML>
|
apacheの再起動 【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/httpd restart 【Fedora16以降 の場合】 # systemctl restart httpd.service |
カスタマイズしたエラーページが表示されるようになった。

| Code | apache Default File | 意味 |
|---|---|---|
| 400 | HTTP_BAD_REQUEST.html.var | 要求されたコードを理解できません |
| 401 | HTTP_UNAUTHORIZED.html.var | アクセスする権利があることを確証することができなかった |
| 403 | HTTP_FORBIDDEN.html.var | 要求するディレクトリーにアクセスする為の許可がありません |
| 404 | HTTP_NOT_FOUND.html.var | 要求されたファイルが見つかりません |
| 405 | HTTP_METHOD_NOT_ALLOWED.html.var | 許可されていないメソッドを受け取りました |
| 408 | HTTP_REQUEST_TIME_OUT.html.var | 指定された時間以内にリクエストを終えなかったのでネットワーク接続を閉じました |
| 410 | HTTP_GONE.html.var | 要求されたURLはサーバ利用できず、転送先アドレスも理解できません |
| 411 | HTTP_LENGTH_REQUIRED.html.var | Content-Lengthメソッドが不正です |
| 412 | HTTP_PRECONDITION_FAILED.html.var | URLに対してリクエストの必要条件は、明確な評価に失敗しました |
| 413 | HTTP_REQUEST_ENTITY_TOO_LARGE.html.var | 要求されたデータ量が容量限度を超えました |
| 414 | HTTP_REQUEST_URI_TOO_LARGE.html.var | 要求されたURLの長さは、このサーバーの容量限度を超えた為、処理することができません |
| 415 | HTTP_UNSUPPORTED_MEDIA_TYPE.html.var | サーバは、メディア・タイプがリクエストで送ったことをサポートしません |
| 500 | HTTP_INTERNAL_SERVER_ERROR.html.var | サーバは内部エラーの為、要求を完了することができませんでした |
| 501 | HTTP_NOT_IMPLEMENTED.html.var | サーバはリクエストを実行する為の必要な機能をサポートしていません |
| 502 | HTTP_BAD_GATEWAY.html.var | ゲートウェイやプロキシとして動作しているサーバが、無効な応答を上位のサーバーから受け取りました |
| 503 | HTTP_SERVICE_UNAVAILABLE.html.var | サーバが一時的な過負荷によるものか保守時間の為、要求を受け付けられませんでした |
| 506 | HTTP_VARIANT_ALSO_VARIES.html.var | 要求するエンティティの値は、そのもの自体で交渉できるリソースです |