Apache Httpd 自定义 ErrorDocument 404 当 ProxyPass 返回 404 时

Apache Httpd 自定义 ErrorDocument 404 当 ProxyPass 返回 404 时

我在另一个应用服务器前面有一个 Apache Web 服务器,使用 Proxy Pass。当对应用程序的请求返回错误 404 时,我想显示来自 Web 服务器的自定义错误页面,而不是来自应用服务器的错误页面。我尝试在虚拟主机上设置 ErrorDocument 404,但它不起作用。我该怎么做?或者这是不可能的?

<VirtualHost *:80>
  ServerName servername
  DocumentRoot /somepath/
  ProxyPass / http://localhost:8080/someapp/
  ProxyPassReverse / http://localhost:8080/someapp/

  ErrorDocument 404 /error.html
</VirtualHost>

答案1

您可以通过指定 来代替代理目标,从而避免代理特定目录!。由于它作用于目录,因此移动error.html到子目录(我们称之为errors),并且:

<VirtualHost *:80>
  ServerName servername
  DocumentRoot /somepath/
  ProxyPass /errors !
  ProxyPass / http://localhost:8080/someapp/
  ProxyPassReverse / http://localhost:8080/someapp/
  ProxyErrorOverride On
  ErrorDocument 404 /errors/error.html
</VirtualHost>

相关内容