这是一个突出我的情况的简单示例:
ProxyPass /google/ http://www.google.com/
ProxyPassReverse /google/ http://www.google.com/
<VirtualHost 127.0.0.1:82>
ProxyPass /google/ http://www.yahoo.com/
ProxyPassReverse /google/ http://www.yahoo.com/
</VirtualHost>
在这种情况下,请求“ http://127.0.0.1:82/google/ ”将尝试访问http://www.google.com
我还发现,在 main 中定义的 ProxyPass 将优先于 vhost 中可用的实际目录 - 例如,如果在上面而不是 VirtualHost 具有 ProxyPass 规则,它的 DocumentRoot 包含一个名为“google”的目录,则代理仍然有效。
根据 apache 文档,我被引导相信任何“主要”定义都会被能够满足请求的 VirtualHost 覆盖。
不幸的是,你是对的。我不知道这是否正确,但您可以通过在 [VirtualHost default ] 部分(http://httpd.apache.org/docs/2.0/vhosts/examples.html#default) 像这样: