2017-02-19 2 views
2

Ich versuche eine Möglichkeit zu finden, einen Benutzer an einen anderen Ort umzuleiten, wenn er ungültige oder gar keine Zugangsdaten zur Verfügung stellt.NGINX - Redirect bei fehlgeschlagener Authentifizierung

Meine Konfiguration sieht wie folgt aus:

server { 
    listen   9999; 

    auth_basic  "Authentication Required"; 
    auth_basic_user_file passwords; 

Dieser Browser des Benutzers verursacht ständig Anmeldeinformationen aufzufordern, bis er die Aufforderung annulliert -, die einen 401-Fehler zurückgibt.

Ich möchte den Benutzer auf eine andere Seite umleiten, wenn die Authentifizierung fehlgeschlagen ist (aus welchen Gründen auch immer) - ist dies mit NGINX möglich?

+0

Ja. es ist möglich. Bitte überprüfen Sie die Konfiguration, die ich hinzugefügt habe. –

+0

Es gab einen kleinen Fehler. Bitte überprüfen Sie es jetzt. Ich aktualisiere meine Antwort. –

Antwort

0

Funktioniert gut. Stellen Sie einfach sicher, dass Ihr placeholder.html existiert. Sonst wird es durch 404 gehen.

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

Dies verursacht "zu viele Weiterleitungen" Fehler. Ich denke, das Problem mit 401 ist, dass nginx * always * 401 an den Browser zurückgibt, bis der Benutzer die korrekten Anmeldeinformationen eingibt oder einen leeren Autorisierungsheader sendet. –

+0

@DanMarkhasin Okay, ich werde es überprüfen und wiederherstellen –

Verwandte Themen