![通过 IP 和路径重定向过滤的反向代理 Apache](https://linux22.com/image/777514/%E9%80%9A%E8%BF%87%20IP%20%E5%92%8C%E8%B7%AF%E5%BE%84%E9%87%8D%E5%AE%9A%E5%90%91%E8%BF%87%E6%BB%A4%E7%9A%84%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%20Apache.png)
我正在尝试使用 apache 创建反向代理,如果它收到以 /thisismypath 作为路径的请求,并且发出该请求的 ip 地址是 192.168.2.12,则它应该重定向到 192.168.1.40。如果任何其他 ip 使用相同的路径发出相同的请求,它应该重定向到 192.168.2.11,如果请求与该路径不匹配,则显示索引页。
我尝试了下一个
<Location /thisismypath>
Deny from all
Allow from 192.168.2.12
ProxyPassMatch "https://192.168.1.40:443/thisismypath/$1"
ProxyPassReverse https://192.168.1.40:443
</Location>
<Location /thisismypath>
Allow from all
ProxyPassMatch "https://192.168.2.11:443/thisismypath/$1"
ProxyPassReverse https://192.168.2.11:443
</Location>
这不起作用,因为就像第一个位置部分被第二个替换了一样。所以我尝试了下一个:
<If "-R '192.168.2.12'">
Deny from all
Allow from 192.168.2.12
ProxyPassMatch "https://192.168.1.40:443/thisismypath/$1"
ProxyPassReverse https://192.168.1.40:443
</If>
<Else>
Allow from all
ProxyPassMatch "https://192.168.2.11:443/thisismypath/$1"
ProxyPassReverse https://192.168.2.11:443
</Else>
但它也不起作用,因为 ProxyPassMatch 语句不能放在 If 部分中。有什么想法我该怎么做吗?