ProxyRequests On
ProxyVia On
# block all domains except our target
<ProxyMatch ^((?!www\.proxytarget\.com).)*$>
Order deny,allow
Deny from all
</ProxyMatch>
# here goes your usual proxy configuration...
<ProxyMatch www\.proxytarget\.com >
Order deny,allow
Deny from all
Allow from 127.0.0.1
</ProxyMatch>
4条答案
按热度按时间kse8i1jr1#
在apache2.2上,你需要有2个
proxy
段。在apache2.4上,这会容易得多,因为您可以使用If指令而不是regexp来反转域名的匹配。
注意:我从Invert match with regexp中获得了该正则表达式
1cklez4t2#
试试看:
看看有没有用。
编辑:我认为你必须用mod_rewrite来创造性地使用它(基本参考在http://httpd.apache.org/docs/current/rewrite/proxy.html):
试试看?
qeeaahzv3#
请尝试以下代码:
njthzxwz4#
Apache 2.4:这对我很有效:先否定一切,再有选择地给予。
请注意,HTTPS需要第二个ProxyMatch(带有:443),否则您的请求将获得:
这意味着您的https通过,但SSL隧道被拒绝。
这适用于Apache侦听:80,使用以下请求
curl -x本地主机:80“https://www.google.com?q=mod_proxy&language=de“
但不是
curl -x本地主机:80“https://www.bing.com?q=google.com“
这是必要的,因为否则您可以通过伪造的查询字符串参数来绕过白名单。