• 作成:

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エラーになってくれます.