与白名单和redirect的乌贼

我设法在Debian Squeeze 6.0服务器上使用iptables NATredirect在透明模式下设置Squid3。

端口80上的所有请求都被正确地redirect到squid,然后与白名单文件进行比较。

所有未列入白名单的网站请求均被发送到自定义ERR_ACCESS_DENIED页面。 此页面包含一个简单的login表单。

所以,当一个网站被阻止时,用户有能力将该网站添加到白名单。

我创build了一个非常简单的PHP脚本,它将URL(带有正则expression式),添加到白名单,并重新启动鱿鱼

在这一点上,我将redirect浏览器到新的授权网站,一个简单的

$your_url = http://www.example.com; header("Location: $your_url"); 

但鱿鱼给了我一个ERR_INVALID_URL页面试图回顾

 (null)://www.example.com 

如果我尝试在地址栏中inputurl,则该网站将被正确投放。

我已经尝试在redirect之前在PHP中设置超时,但即使1分钟超时,redirect也会失败。 同时,在地址栏中inputurl即可。

任何线索?

更新问题很容易解决切换到Squid 2.7

Squid3的bug 在这里

问题解决切换到Squid 2.7

我有一个名为parentwall的类似项目。 我用squid -k reconfigure来解决这个问题,而不是重新启动squid。 你可以用rc脚本做同样的事情。

重新启动鱿鱼需要永远,不必重新加载白名单。

只是一个想法,但在这里可能更容易做一个JavaScriptredirect。 所以,而不是试图做一个PHP的redirect只是返回一个JavaScript的页面。

这是一个不太优雅,但可能会更容易。