• 作成日時:
  • 更新日時:

nginxで404ページをリダイレクトさせずに表示する

このサイトの404がnginxのデフォルトのままで流石にあんまりにもあんまりでした.日本語で説明を表示してトップページへのリンクぐらい残しておこうと思いました.

nginxで404ページをカスタムする方法は簡単で,

error_page 404 /404/index.html;

と書けばそこのファイルを参照してくれます.

しかしこのデフォルト設定には1つ問題があって,404エラー時に404のファイルのURLに飛んでしまいます.

これはユーザにとっても管理者にとっても望ましくない動作です.

ユーザはどのURLが404だったのか把握することが難しいですし,管理者へのエラー報告の情報も減ってしまいます.

そこで以下のように記述します.

location = /404/index.html {
    internal;
}

これでリダイレクトは内部リダイレクトになってURLはそのまま404エラーになってくれます.