2017-02-19 41 views
2

ユーザーが無効な資格情報を提供する場合、または資格情報がまったくない場合、ユーザーを別の場所にリダイレクトする方法を探しています。NGINX - 認証失敗時にリダイレクト

私の構成は次のようになります。

server { 
    listen   9999; 

    auth_basic  "Authentication Required"; 
    auth_basic_user_file passwords; 

彼はプロンプトキャンセルするまでは、常に資格情報を要求するユーザのブラウザの原因 - 401エラーを返します。

認証が失敗した場合(何らかの理由で)、別のページにリダイレクトしたいのですが、これはNGINXで可能ですか?

+0

はい。可能です。私が追加した設定を確認してください。 –

+0

少し間違いがありました。今すぐ確認してください。私は私の答えを更新しています。 –

答えて

0

正常に動作します。 placeholder.htmlが存在することを確認してください。それ以外の場合は404になります。

server { 
     listen 80; 
     server_name testing.com; 

     root /var/www/; 

    location/{ 
     index index.html index.htm; 
      auth_basic "Restricted"; 
      auth_basic_user_file /etc/nginx/.htpasswd; 
    } 
    error_page 401 /placeholder.html; 
    location = /placeholder.html { 
       auth_basic off; 
     } 

} 
+0

これは「リダイレクトが多すぎます」というエラーを引き起こします。 401の問題は、ユーザーが正しい資格情報を入力するか、空のAuthorizationヘッダーを送信するまで、nginx *が常に401をブラウザに返すことだと思います。 –

+0

@DanMarkhasinよろしくお願いいたします。確認して元に戻します –

関連する問題