Если вы используете соединители mod_jk и tomcat, это ожидаемое поведение. Если вы используете что-то вроде
ErrorDocument 503 "foo"
вы увидите 'foo' на странице или
ErrorDocument 503 "http://www.somedomain.com"
, который успешно направит вас на somedomain.com. Но если вы используете что-то вроде
ErrorDocument 503 /maintenance.html
Apache не сможет найти [DocumentRoot] /maintenance.html, так как он смотрит в контексте коннектора tomcat. Вам необходимо размонтировать ваш соединитель и сказать Apache, чтобы он обслуживал статический контент из другого места.
Это хорошее руководство для начала работы с mod_jk.
Пользовательские страницы ошибок с коннекторами Apache и Tomcat
edit: вот решение, которое я использовал для правильной визуализации наших пользовательских страниц 503.
Во-первых, все наши пользовательские страницы ошибок имеют префикс кода ошибки, поскольку, скорее всего, наше веб-приложение не будет содержать файлы с этими кодами состояния в качестве корня имени файла.
Так что для использования вашего примера у меня было бы что-то вроде следующих трех файлов в каталоге с именем 'custom_errors':
/503_maintenance.html
/503_maintenance.css
/503_corp_logo.png
Это позволяет легко исключать любые файлы, связанные с пользовательскими страницами ошибок, из монтирования jk. В нашем файле vhost мы устанавливаем местоположение документа с ошибкой и псевдоним
#Alias the location of your custom error page files
Alias /error/ /var/apache2/2.2/htdocs/custom_errors
ErrorDocument 503 /error/503_maintenance.html
#mount the core tomcat application
JkMount /* myWorker
#set the 503 code if myWorker is unavailable
#and exclude the 503 pages from the tomcat/jboss application
JkMount /* myWorker;use_server_errors=503
JkUnMount /503* myWorker
Это в основном говорит Apache и mod_jk не монтировать файлы с префиксом 503 в контексте коннектора tomcat и вместо этого будет искать эти файлы локально. Если вы не хотите использовать местоположение относительно DocumentRoot, вы можете использовать и Псевдоним, как я.