Apache的ErrorDocument没有redirect?

我有一个Apache服务器已经/转发到Tomcat服务器。 当Tomcat服务器closures时,我想显示一条错误消息。 这是我目前的:

 ErrorDocument 502 "We're down, sorry :(" 

我想展示一个相对丰富的文档(有趣的图片和东西),而不仅仅是一句话的消息。 问题是,它不出现我可以提供文件,只有redirect到他们。 我在看这个文档 。

我想保留相同的URL,但提供不同的HTML文件。 任何方式来做到这一点?

 <VirtualHost *:443> ServerName ${DOMAIN_NAME} ProxyRequests Off ProxyAddHeaders On ProxyPass /stomp http://tomcat:8080/stomp ProxyPassReverse /stomp http://tomcat:8080/stomp ProxyPass /.well-known http://mail.${DOMAIN_NAME}:80/.well-known ProxyPassReverse /.well-known http://mail.${DOMAIN_NAME}:80/.well-known ProxyPassMatch / http://tomcat:8080 retry=0 timeout=10 ProxyPassReverse / http://tomcat:8080 SSLCertificateFile /etc/letsencrypt/live/${DOMAIN_NAME}/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/${DOMAIN_NAME}/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ErrorDocument 502 ${PROXY_ERROR_MESSAGE} ErrorDocument 503 ${PROXY_ERROR_MESSAGE} </VirtualHost> 

如果您为错误文档指定完全限定的URL,则隐式地导致redirect,因为必须告诉浏览器“在其他位置获取错误页面”。 但是,如果你做了这样的事情:

  ErrorDocument /errors/my503.html 

只要该URIpath直接在apache中提供,就不会有redirect。 在你的设置中,因为你在代理“/”,你必须明确地排除这个文件被代理回tomcat像这样:

 ProxyPass /errors/my503.html!
 ErrorDocument /errors/my503.html

您还需要为HTML中使用的任何页面组件添加排除项。

如果您想从来自tomcat的实际HTTP错误代码(通常为4xx代码)提供自定义错误页面,那么您应该查看ProxyErrorOverride指令