Ich implementiere manuell ein WLAN-Captive-Portal. Ich habe alles so ziemlich am Laufen, ABER ein einziges Problem: Ich möchte, dass jeder das Popup-Fenster seines mobilen Betriebssystems (oder Computer-Betriebssystems) für ein einwandfreies Erlebnis sieht.
Da jeder von ihnen seine eigene Art zu arbeiten hat, bin ich anscheinend nicht in der Lage, eine konsistente plattformübergreifende Erfahrung zu erzielen.
Kann ich Ihnen dabei behilflich sein, zu beschreiben, (1) welche URL-Anforderungen von WLAN-Clients an eine Anmeldeseite umgeleitet werden müssen und / oder (2) welche Nginx- oder Apache-Webserverkonfiguration zum Umleiten von WLAN verwendet werden kann? Kunden zu einer Login-Seite?
Meine Anmeldeseite für das Captive-Portal in diesem Beispiel lautet http: //captiveportal.lan . Hier sind einige der Betriebssysteme, für die ich versuche, das Problem zu beheben.
Android 4/5/6
- Apache:
RedirectMatch 302 /generate_204 http://captiveportal.lan
- Nginx:?
Frühere Android-Versionen
- Apache:?
- Nginx:?
iOS 8
Apache .htaccess:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^CaptiveNetworkSupport(.*)$ [NC]
RewriteRule ^(.*)$ http://captiveportal.lan [L,R=302]
Nginx:?
Frühere iOS-Versionen
- Apache:?
- Nginx:?
Windows Phone
- Apache:
RedirectMatch 302 /ncsi.txt http://captiveportal.lan
- Nginx:?
Windows 7 \ 8 \ 10
- Apache: siehe Windows Phone (funktioniert auf Win7).
- Nginx:?
Mac OS
- Apache:?
- Nginx:?
Amazon Kindle - hat es ein Popup?
- Apache:?
- Nginx:?
quelle
Antworten:
Alle mobilen Betriebssysteme überprüfen nur eine Webseite, um zu entscheiden, ob sie sich hinter einem Captive-Portal befinden oder nicht.
Der Mechanismus ist folgender:
Außerdem benötigen Sie für iOS eine Domain für Ihr WiFi-Netzwerk, da davon ausgegangen wird, dass es sich bei einem domainslosen Netzwerk ohne Zugriff um ein Heimnetzwerk handelt, und es statt als Captive Portal nur als Kein Netzwerk markiert wird.
Stellen Sie einfach sicher, dass Sie die folgenden URLs mit HTTP Success explizit an Ihr Captive-Portal weiterleiten:
Android / Chromebook:
iOS 6:
iOS 7:
iOS 8/9:
Windows
Viele Anbieter haben auch damit begonnen, den Benutzeragenten "CaptiveNetworkSupport" zu verwenden, obwohl dieser nicht so häufig ist wie die oben beschriebene URL-Methode. Suchen Sie einfach nach dieser UA und geben Sie ihr immer Ihre Portalseite ... funktioniert jedoch nicht zu 100%.
Ich benutze die URL-Methode und es hat gut funktioniert.
quelle
Amazon Kindle (Fire)
Der Amazon Kindle (Fire) fordert Folgendes an, und wenn es nicht abgerufen werden kann, wird davon ausgegangen, dass sich der Benutzer anmelden und einen Anmeldebildschirm öffnen muss.
iOS 8.4
Für das neueste iOS musste ich alle URIs für Anfragen an http://captive.apple.com abgleichen - nicht nur "/hotspot-detect.html".
iOS 8.4-Clients stellen Anforderungen mit zufällig generierten URIs (z. B. "/xmqPyZUv/3r8jTjv8.html" und "/7exN0TV7q0COX0/eKlBU8baU2tape/fjXUzDHBdE6W0O/BjUzW7iYU2DVBh1th1t1t1t1"), um um um um in um um um um um um um um um um um um
quelle