課題
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