强制门户 - Apple设备无法获得自动浏览器弹出窗口

时间:2017-05-10 16:21:42

标签: ios macos wifi captivenetwork captiveportal

我在Ubiquity Unifi基础设施上创建了一个自定义强制门户(外部托管,由PHP制作)。一切正常,除了:

Apple设备(OSX,iOS)在连接时无法获得通常的弹出窗口。

我的雇主要求这样做。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我根据https://serverfault.com/questions/679393/captive-portal-popups-the-definitive-guide

解决了我自己的问题

iOS和OSX设备向URL发出请求以检测强制网络门户。规则如下:

  
      
  1. GET / POST http://foo.com/bar.html
  2.   
  3. 如果bar.html == [预期内容]>开放互联网
  4.   
  5. 如果bar.html!= [预期内容]>俘虏门户
  6.   
  7. 如果bar.html [status]!= SUCCESS>没有网络
  8.   

但是,我在第一次访问强制网络门户时使用HTTP标头重定向用户。这不属于上述任何规则,因此无法检测到Apple设备是否存在强制网络门户。

这是我的最终代码,它从热点提供的奇怪网址重定向到我的门户网站:

<?php
/* Trying to get Apple to show the WiFi popup */
if (!empty($_REQUEST['url']) && (strstr($_REQUEST['url'],'success.html') || strstr($_REQUEST['url'],'detect.html'))) {
    echo '
    Redirecting...
    <script type="text/javascript">
    window.location = "/index.html";
    </script>';
    exit;
}

header("Location:/index.html?". $_SERVER['QUERY_STRING']);

如您所见,Apple设备需要查看一些实际内容,而不是重定向。

我还将.php文件扩展名重写为.html。

希望这有助于其他人。