NKSSG
NakaKen Static Site Generator

404ページを表示しよう

NKSSG の default テーマでは、404ページを自動的に作成しますが、そのままでは使えません。ここでは追加で設定する内容を説明していきます。

404ページ

サイト内で、存在しないページへアクセスがあった場合、404ページがあると親切です。NKSSG の default テーマでは、404ページを自動で作るようになっています。/themes/default/404.html にひな型があり、nkssg build を実行すれば、public フォルダの直下にファイルが作成されます。

ただ、この404ページは、そのままサーバーに上げるだけでは表示されません。サーバーに対して設定が必要となります。

htaccess

存在しないページへアクセスがあったときに、用意してある 404.html を表示するには、サーバー側の設定が必要です。使用している Webサーバーによって設定方法は異なりますが、ここでは、Apache を使っている場合を紹介します。

Apache の場合は、トップフォルダに .htaccessファイルを入れておきます。中身は、次のように、1行だけです。

ErrorDocument 404 /404.html

後半の /404.html は、表示したいファイルへのルート相対パスです。もし site_url がサブフォルダの場合は、サブフォルダつきで設定する必要があります。

このファイルは、nkssg build したときに public フォルダの直下に入っていてほしいので、static フォルダの直下に保存しておくといいです。こうしておくと、build するたびに、.htaccess は public フォルダの直下にコピーされます。

メモ

作成した .htaccess を public フォルダの直下に直接置くのはやめましょう。nkssg build -c を実行したときに、一緒に削除されてしまいます。

Nginxサーバーの場合

Nginxサーバーの場合は、.htaccess は使えません。404.html を使うには、Nginxサーバーの設定ファイルを修正する必要があります。

設定ファイルは、nginx.conf といった名前です(システムによって異なります)。このファイルに、次のように追加します。

server {
  error_page 404 /404.html;
  location = /404.html {
    internal;
  }
}

こうすると、存在しないページにアクセスがあったときに、404.html が表示されるようになります。設定ファイル内に server の項目がすでにある場合は、server の中身を追加しましょう。