I've made a captive portal using iptables NAT redirection and white-listed MACs. This works nicely, and iDevices pop up my login/terms page after association. However, I've noticed that when 3G is enabled, the phone tries to load this page over 3G, which leaves users staring at a white screen.
One possible solution I've found is to white-list www.apple.com so that the iPhone can retrieve www.apple.com/library/test/success.html, so it thinks it's connected to the Internet, and then when users go to Safari the login page shows up. This works but leaves users confused, and I much prefer the login page popping up automatically.
Is there any way to tell the iPhone to load the login page over Wi-Fi at all times and also have the login page popping up?