排除包含特定端口的 URL 不通过代理传递

排除包含特定端口的 URL 不通过代理传递

如果客户端提供了某个端口,我该如何强制 ProxyPass / ProxyPassReverse 不传递请求?

以下操作将正确传递对机器发出的每个请求:

<VirtualHost _default_:443>
  SSLProxyEngine on
  ProxyPass / http://a.b.c.d:9000/
  ProxyPassReverse / http://a.b.c.d:9000/

现在我不想传递进入端口 8080 的请求:

http://abcd:8080不应通过。

这可能吗?

答案1

您可以在 :443 vhost 声明之后尝试类似 catch all vhost 的操作:

<VirtualHost _default_:*>
DocumentRoot /www/default
...
</VirtualHost>

然后使用 AliasMatch 或 RewriteRule 将到达此虚拟主机的任何请求重写为信息页面或任何您想要的内容。以下是有关虚拟主机匹配优先级的出色参考页面:http://httpd.apache.org/docs/2.2/vhosts/details.html

相关内容