前人未踏の領域へ WEB・インフラ・プログラミング全般編

フロントエンド、バックエンド、インフラ、言語など、アプリ開発、IOT以外の記録

Nginxの標準エラー画面をカスタマイズする

課題

Nginxにてベーシック認証でエラーになった場合のエラーページのHTMLを変更したい。どうすればよいか

対応

ベーシック認証でエラーになるとサーバーはエラーコード401を返す。なので401エラー時の処理を指定して あげればよい。

  • 401.html を用意する
  • 401.htmlに対するベーシック認証をoffにする

401.html を用意する

適当にエラーページを用意し、ドキュメントルートに配備。 error_page でエラーコードとファイルの対応付けを伝える

# nginx.conf
server {
    error_page 401 /401.html;
}

401.htmlに対するベーシック認証をoffにする

# nginx.conf
server {
     error_page 401 /401.html;

    location /401.html {
        auth_basic off;
    }
}

cssとかimgファイルを使いたい場合は必要に応じてlocationを追記する

location ~ ^/.*\.(css|svg)$ {
        auth_basic off;
}

あとはnginxを再起動すればOK

/* Responsive: yes */