我们正在尝试在本地 wifi 网络上托管一个静态网页(只有一个 index.php),无需互联网访问。基本上每个用户(移动设备)都应该登录到某个登录页面,然后他可以将一些文件上传到我们的服务器。
我们尝试了两种方法:
1.) 我们已通过以 http 代码 302 响应 /generate_204 来设置强制门户。在 Android 上,这会触发“登录 wifi”弹出窗口并打开一种虚拟浏览器(强制门户的常用浏览器),遗憾的是,此浏览器不支持文件上传 ( <input type="file">
)。是否有可能从虚拟浏览器退出(例如通过链接)到默认浏览器?是否可以在虚拟浏览器中上传文件?
2.) 使用服务器的 IP 响应所有客户端 DNS 请求。在这种情况下,任何 URL 都应重定向到我们的 Web 服务器。这是通过 dnsmasq 进行配置的address=/#/192.168.1.1
。当通过 http 进入网站时,用户会被正确重定向。在 https 的情况下,这不起作用,可能是因为 HSTS (?)。在大多数浏览器中,未输入的 URLwww
会被查询为搜索结果,因此会自动传输为 https 请求。这里的问题是如何将 https 请求成功重定向到我们的 Web 服务器?
总的来说,我们只是想要一种简单的方法,以便每个用户最终都可以在我们的网页上上传文件,而无需明确输入任何内容。
设置:
DNS 和 DHCP 服务器是 dnsmasq
WebServer 是 apache2,监听 80 和 443