Saya secara manual mengimplementasikan portal captive WiFi. Saya memiliki semuanya, tetapi TETAPI satu halangan: saya ingin semua orang melihat OS mobile mereka (atau OS komputer) captive portal popup untuk pengalaman sempurna.
Karena masing-masing dari mereka memiliki cara memutar sendiri untuk melakukannya, saya tampaknya tidak bisa mendapatkan pengalaman lintas platform yang konsisten.
Untuk mewujudkannya, dapatkah saya membantu menjelaskan (1) permintaan URL apa dari klien WiFi yang perlu diarahkan ke halaman login, dan / atau (2) konfigurasi server web nginx atau apache yang dapat digunakan untuk mengarahkan ulang WiFi klien ke halaman login?
Halaman login portal captive saya dalam contoh ini adalah http: //captiveportal.lan . Berikut adalah beberapa Sistem Operasi yang saya coba selesaikan untuk ini.
Android 4/5/6
- Apache:
RedirectMatch 302 /generate_204 http://captiveportal.lan
- nginx:?
Versi Android sebelumnya
- Apache:?
- nginx:?
iOS 8
Apache .htaccess:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^CaptiveNetworkSupport(.*)$ [NC]
RewriteRule ^(.*)$ http://captiveportal.lan [L,R=302]
nginx:?
Versi iOS sebelumnya
- Apache:?
- nginx:?
Windows Phone
- Apache:
RedirectMatch 302 /ncsi.txt http://captiveportal.lan
- nginx:?
Windows 7 \ 8 \ 10
- Apache: lihat windows phone (berfungsi pada win7).
- nginx:?
OS Mac
- Apache:?
- nginx:?
Amazon Kindle - apakah ada popup?
- Apache:?
- nginx:?
sumber
Jawaban:
Semua OS seluler cukup periksa halaman web untuk memutuskan apakah mereka berada di balik captive portal atau tidak.
Mekanismenya adalah ini:
Juga, untuk iOS, Anda harus memiliki domain untuk jaringan WiFi Anda karena mengasumsikan jaringan tanpa domain tanpa akses adalah jaringan rumah dan hanya menandainya sebagai Tidak Ada Jaringan alih-alih Captive Portal.
Pastikan untuk secara eksplisit mengarahkan url berikut ke portal captive Anda dengan HTTP Success:
Android / Chromebook:
iOS 6:
IOS 7:
iOS 8/9:
Windows
Banyak vendor juga sudah mulai menggunakan Agen Pengguna "CaptiveNetworkSupport", meskipun itu tidak biasa seperti metode URL di atas. Cukup periksa UA itu dan selalu berikan halaman portal Anda ... tidak bekerja 100% sekalipun.
Saya menggunakan metode URL dan sudah berfungsi dengan baik.
sumber
Amazon Kindle (Fire)
Amazon Kindle (Fire) membuat permintaan berikut, dan jika itu tidak dapat diambil "... diasumsikan bahwa pengguna harus masuk dan memunculkan layar Masuk.":
iOS 8.4
Untuk iOS terbaru saya harus mencocokkan semua URI dengan permintaan ke http://captive.apple.com - bukan hanya "/hotspot-detect.html".
iOS 8.4 klien membuat permintaan dengan URI yang dihasilkan secara acak (mis. "/xmqPyZUv/3r8jTjv8.html" dan "/7exN0TV7q0COX0/eKlBU8baU2tape/fjXUzDHBdE6W0O/BGbw7iXUdl URL saya ke URL URL).
sumber