プロキシパスを使用して、別のアプリケーションサーバーの前に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>
プロキシターゲットの代わりに!
を指定すると、特定のディレクトリのプロキシを回避できます。ディレクトリで動作するため、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>