Назад | Перейти на главную страницу

Пользовательский документ об ошибке Apache Httpd 404, когда ProxyPass вернул 404

У меня есть веб-сервер 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>