iptables和Apache导致“太多的redirect”

我有iptables和Apache在网关机器上运行。

1)网关后面的所有机器都不能访问互联网。

2)如果他们试图浏览任何其他网站,他们应该自动redirect到另一个网站http://www.xyz.com (这也是我的控制下)。

为了做到这一点,我在iptables中尝试了以下内容。

*nat -A PREROUTING -i eth3 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 80 (redirect all browsing requests to port 80 on gateway machine itself) 

而在网关机器上运行的Apache服务器上,

 in /etc/apache2/sites-available/default RedirectMatch .* http://www.xyz.com/ 

做完之后,当我尝试从网关后面浏览任何网站时,出现错误。

在Firefox中 – “Firefox已经检测到服务器正以一种永远不会完成的方式redirect这个地址的请求。”

在Chrome中 – 错误310(net :: ERR_TOO_MANY_REDIRECTS):有太多的redirect。

在IE中 – 类似的事情发生了。

它看起来像iptables和RedirectMatch相互工作进入一个recursion循环。 我能做些什么来防止这种情况?

您可以将目标networking服务器的IP地址添加到您的iptables规则中:

-A PREROUTING -i eth3 -p tcp ! -d 1.2.3.4 -m tcp --dport 80 -j REDIRECT --to-ports 80

或者,如果您在xyz.com控制服务器。 将其托pipe在不同的端口上。