Я вручную внедряю портал Wi-Fi. У меня все работает довольно хорошо, НО единственная заминка: я хочу, чтобы все увидели всплывающий портал своих мобильных ОС (или компьютерных ОС) для безупречного опыта.
Поскольку у каждого из них есть свой собственный извращенный способ сделать это, я, по-видимому, не могу получить последовательный кроссплатформенный опыт.
Чтобы это произошло, могу ли я получить некоторую помощь, чтобы описать (1) какие URL-запросы от клиентов WiFi необходимо перенаправить на страницу входа в систему, и / или (2) какую конфигурацию веб-сервера nginx или apache можно использовать для перенаправления WiFi клиенты на страницу входа?
В этом примере моей страницей входа в портал является http: //captiveportal.lan . Вот некоторые из операционных систем, для которых я пытаюсь решить эту проблему.
Android 4/5/6
- Apache:
RedirectMatch 302 /generate_204 http://captiveportal.lan
- nginx:?
Предыдущие версии Android
- Апач:
- nginx:?
iOS 8
Apache .htaccess:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^CaptiveNetworkSupport(.*)$ [NC]
RewriteRule ^(.*)$ http://captiveportal.lan [L,R=302]
nginx:?
Предыдущие версии iOS
- Апач:
- nginx:?
Windows Phone
- Apache:
RedirectMatch 302 /ncsi.txt http://captiveportal.lan
- nginx:?
Windows 7 \ 8 \ 10
- Apache: см. Windows Phone (работает на Win7).
- nginx:?
Mac OS
- Апач:
- nginx:?
Amazon Kindle - есть ли у него всплывающее окно?
- Апач:
- nginx:?
источник
Ответы:
Все мобильные ОС просто проверяют веб-страницу, чтобы решить, находятся ли они на некомпетентном портале или нет.
Механизм такой:
Кроме того, для iOS вам необходим домен для вашей сети WiFi, так как предполагается, что бездоменная сеть без доступа является домашней сетью и просто помечает ее как Нет сети вместо Captive Portal.
Просто убедитесь, что явно перенаправили следующие URL-адреса на ваш портал с успешным HTTP:
Android / Chromebook:
iOS 6:
IOS 7:
iOS 8/9:
Windows
Многие поставщики также начали использовать пользовательский агент "CaptiveNetworkSupport", хотя это не так часто, как метод URL-адреса выше. Просто проверьте этот UA и всегда предоставьте ему свою страницу портала ... хотя она не работает на 100%.
Я использую метод URL, и он работает нормально.
источник
Amazon Kindle (Fire)
Amazon Kindle (Fire) делает следующий запрос, и если он не может быть получен, «... он предполагает, что пользователь должен войти в систему, и выдает экран входа в систему».
iOS 8.4
Для последней версии iOS мне приходилось сопоставлять все URI для запросов к http://captive.apple.com, а не просто «/hotspot-detect.html».
Клиенты iOS 8.4 отправляют запросы со случайно сгенерированными URI (например, «/xmqPyZUv/3r8jTjv8.html» и «/7exN0TV7q0COX0/eKlBU8baU2tape/fjXUzDHBdE6W0O/BGbw7iYU2DVBTXTht) для запросов к доменам:
источник