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:[email protected]">[email protected]</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 | 要求するエンティティの値は、そのもの自体で交渉できるリソースです |