Apache-2.2

Apache ProxyPass 排除。不要代理 404 地址

  • January 19, 2014

我正在嘗試使用 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。

根據您的 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 您從範例配置中省略的指令的含義。

引用自:https://serverfault.com/questions/568386