У меня есть веб-сервер Apache перед другим сервером приложений, использующий Proxy Pass. Когда запрос к приложению возвратил ошибку 404, я хочу показать настраиваемую страницу ошибки с веб-сервера, а не ту, которая поступает с сервера приложений. Я попытался установить 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>