LinuxでApache2.4を使用し、複数の仮想サーバーがあり、各仮想サーバーに独自のDocumentRootがある場合、ApacheメインサーバーのErrorDocumentローカルリダイレクトで、それぞれの下にあるPerlスクリプトではなく、ApacheメインDocumentRootに関連する単一のPerlスクリプトを実行します仮想サーバー。
何が起こるかというと、メインサーバーのドキュメントルートではなく、仮想サーバーのドキュメントルートがファイルシステムパスの構築に使用されます。
各仮想サーバーのDocumentRootに(明らかに)(同一の)スクリプトを持たせる代わりに、単一のローカルリダイレクトスクリプトのみを使用するようにApacheサーバーを構成できる方法はありますか?
次のディレクティブをグローバル(サーバー)コンテキストに配置することで(つまり、<VirtualHost>ブロック内に配置しないで)、単一のグローバルエラードキュメントを設定できます。その後、すべての仮想ホストで機能します。これは静的なHTMLファイルを示していますが、代わりにPerlスクリプトに簡単に変更できます。
エイリアス/error-404.html/path/to/my/errors/error-404.html ErrorDocument404 /error-404.html <ディレクトリ "/path/to/my/errors"> にはすべての許可が必要です </ Directory>
ErrorDocumentを外部リソースとして設定できます。
ErrorDocument 500 http://error.example.com/server_error.html
したがって、メインの仮想ホストでスクリプトを参照するだけで済みます。
信じられないかもしれませんが、これは ErrorLogのドキュメント に記載されています。