如何使用mod_proxy – apache将FORWARD代理用户redirect到网页

我已经search了很多的解决scheme,大多数答案都属于proxypass(反向代理)或不相关。

最终用户的Web浏览器被configuration为使用Apache代理服务器。

我想将所有用户redirect到单个网页(如果可能,请在同一台服务器上)。

Mod_rewrite不起作用,因为只有当用户试图访问代理服务器时才会触发。 我想redirect尝试访问外部网站的用户。

目前的configuration很简单:

/var/httpd/conf.d/proxy.conf:

<VirtualHost *:*> ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Deny from all Allow from 172.0.0.0/21 </Proxy> </VirtualHost> 

我想阻止所有请求,然后设置一个自定义的错误页面,但找不到任何这个工作的例子。

我没有尝试使用正向代理的输出filter,但是它可以与反向代理一起使用,所以您可能需要尝试一下:

 #add this outside of any VirtualHost tags ExtFilterDefine proxiedcontentfilter mode=output cmd="/usr/bin/php /var/www/proxyfilter.php" #add this in your VirtualHost tag SetOutputFilter proxiedcontentfilter In proxyfilter.php have some code like the following: #!/usr/bin/php <?php $html = file_get_contents('php://stdin'); #update this if-condition to match any non-internal hostnames if ($_SERVER['HTTP_HOST'] != 'www.example.com') { header('Location: http://localserver/message_to_display.html'); $html = ''; } file_put_contents('php://stdout', $html);