我正在尝试使用带有 Apache2 的 Linux 机器来实现强制门户。在这种情况下,大多数操作系统使用强制网络助手 (CNA) 技术来“检测”它们是否正在访问强制门户(Android、Windows、OSX、iOS ......)。
好吧,对于 Android 和 Windows 设备,一切都“正常”(尽管它们可能会通过一些消息提醒您,例如“您可能需要额外的网络信息......”之类的东西)。问题出在苹果设备上。似乎 CNA 的 iOS 实现有点困难,因为它会打开一个登录弹出窗口等待凭据介绍......这样,我无法在 Safari 的主窗口中浏览我的内容,而是在那个“临时”Safari 中窗户...
我已经广泛研究了一些“绕过”这个 iOS CNA 实现的方法,只是在方便的时候提供一个“success.html”文件,我发现有人已经成功使用 LightTPD Web 服务器,如下所示:
dir-listing.hide-dotfiles = "enable"
# Fix for iOS7
# It ask especially different domains without a specific URL.
# It want to get a "success" message, to allow full system/internet access
$HTTP["useragent"] =~ "CaptiveNetworkSupport" {
server.document-root = "/opt/piratebox/www/library/test/"
index-file.names = ( "success.html" )
dir-listing.activate = "disable"
server.error-handler-404 = "/success.html"
}
我想知道是否有人可以将前面的 LightTPD 指令“翻译”成它们在 Apache2 中的等效指令,可能使用一些 RewriteCond + RewriteRule 指令......
否则,如果有人使用 Apache2 绕过 iOS CNA 建立强制门户,我会非常有兴趣阅读该过程的简短描述,并自行重现它。
提前致谢。