我试图设置mod代理以阻止除特定域以外的所有流量。我可以将其配置为使用ProxyBlock指令来阻止各个域,并且可以使用ProxyBlock *阻止所有内容。有没有办法阻止一切,但只有一个域名?如何配置mod_proxy以阻止除一个以外的每个站点
感谢,
-Andrew
我试图设置mod代理以阻止除特定域以外的所有流量。我可以将其配置为使用ProxyBlock指令来阻止各个域,并且可以使用ProxyBlock *阻止所有内容。有没有办法阻止一切,但只有一个域名?如何配置mod_proxy以阻止除一个以外的每个站点
感谢,
-Andrew
在Apache 2.2,你需要有2个proxy
部分。
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>
在Apache 2.4这将是更容易,因为你可以使用If directive而不是正则表达式的反转匹配的域名。
注意:我从Invert match with regexp得到该正则表达式
尝试:
ProxyBlock *
ProxyPass <path> <destination>
看看是否能工程。
编辑:从头开始。我认为你必须发挥创意这里mod_rewrite的(基本参照是http://httpd.apache.org/docs/current/rewrite/proxy.html):
RewriteCond %{HTTP_HOST} =allowtoproxy.com
RewriteRule ^/(.*)$ http://proxytarget.com/$1 [P]
ProxyPassReverse/http://proxytarget.com/
尝试吗?
试试这个代码:
RewriteEngine On
# Testing URLs
RewriteCond %{HTTP_HOST} !google.co.uk [NC]
RewriteCond %{HTTP_HOST} !bbc.co.uk [NC]
RewriteCond %{HTTP_HOST} !amazon.com [NC]
RewriteCond %{HTTP_HOST} !centos.org [NC]
RewriteCond %{HTTP_HOST} !opensuse.org [NC]
# Url to redirect to if not in allowed list
RewriteRule (.*) http://example.org/notallowed.htm
这不起作用。任何其他想法? – abudker 2011-05-25 20:36:22