我在Ubiquity Unifi基础设施上创建了一个自定义强制门户(外部托管,由PHP制作)。一切正常,除了:
Apple设备(OSX,iOS)在连接时无法获得通常的弹出窗口。
我的雇主要求这样做。有什么想法吗?
答案 0 :(得分:0)
我根据https://serverfault.com/questions/679393/captive-portal-popups-the-definitive-guide
解决了我自己的问题iOS和OSX设备向URL发出请求以检测强制网络门户。规则如下:
- GET / POST http://foo.com/bar.html
- 如果bar.html == [预期内容]>开放互联网
- 如果bar.html!= [预期内容]>俘虏门户
- 如果bar.html [status]!= SUCCESS>没有网络
醇>
但是,我在第一次访问强制网络门户时使用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。
希望这有助于其他人。