2017-02-19 1 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 문제는 사용자가 올바른 자격 증명을 입력하거나 빈 인증 헤더를 보낼 때까지 nginx * 항상 * 브라우저에 401 반환합니다 생각합니다. –

+0

@DanMarkhasin 좋아요. 확인하고 되돌릴 것입니다. –