web-dev-qa-db-ja.com

ProxyPassが404を返したときのApache HttpdカスタムErrorDocument 404

プロキシパスを使用して、別のアプリケーションサーバーの前に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>
9
hendry.fu

プロキシターゲットの代わりに!を指定すると、特定のディレクトリのプロキシを回避できます。ディレクトリで動作するため、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>
12
Shane Madden