我正在尝试使用 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
其次,您可能需要调查从示例配置中省略的指令的含义。