Apache ProxyPass 排除。不代理 404 地址

Apache ProxyPass 排除。不代理 404 地址

我正在尝试使用 Apache 设置反向代理,并且在大多数情况下,它运行良好ProxyPass。我想排除我理解可以使用指标执行的目录之一!,记录如下:http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse

所以我有:

ProxyPass /examples !
ProxyPass / http://localhost:3000/

如果我转到一个/examples存在的文件,那么一切正常,但如果我点击的地址导致 404 错误,则请求会被代理,而不仅仅是返回 404。

我宁愿返回 404。我在文档中没有看到任何关于此内容的内容 - 有人知道该怎么做吗?非常感谢!

这是 Apache v2.4.6。

答案1

根据您的 Apache 设置,已在 ProxyPass 中排除的 /examples 位置之外定义了默认错误文档。我的 RHEL 6 具有默认设置:

 Alias /error/ "/var/www/error/"
 ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var

这将导致任何 404 消息被重定向至/error/HTTP_NOT_FOUND.html.[en | es | de | fr ]依赖项,并且浏览器的接受语言设置会产生 404 错误。

就您而言,这意味着的请求/examples/no-such-file仍将被重定向到http://localhost:3000/

ProxyPassReverse 其次,您可能需要调查从示例配置中省略的指令的含义。

相关内容