我使用Proxy Pass在另一个应用程序服务器的前面安装了Apache Web服务器。 当对应用程序的请求返回错误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>
你可以通过指定一个特定的目录来避免代理! 代替代理目标。 由于它作用于一个目录,将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>