web-dev-qa-db-ja.com

ApacheErrorDocumentスクリプトの場所

LinuxでApache2.4を使用し、複数の仮想サーバーがあり、各仮想サーバーに独自のDocumentRootがある場合、ApacheメインサーバーのErrorDocumentローカルリダイレクトで、それぞれの下にあるPerlスクリプトではなく、ApacheメインDocumentRootに関連する単一のPerlスクリプトを実行します仮想サーバー。

何が起こるかというと、メインサーバーのドキュメントルートではなく、仮想サーバーのドキュメントルートがファイルシステムパスの構築に使用されます。

各仮想サーバーのDocumentRootに(明らかに)(同一の)スクリプトを持たせる代わりに、単一のローカルリダイレクトスクリプトのみを使用するようにApacheサーバーを構成できる方法はありますか?

1
keith20mm

次のディレクティブをグローバル(サーバー)コンテキストに配置することで(つまり、<VirtualHost>ブロック内に配置しないで)、単一のグローバルエラードキュメントを設定できます。その後、すべての仮想ホストで機能します。これは静的なHTMLファイルを示していますが、代わりにPerlスクリプトに簡単に変更できます。

エイリアス/error-404.html/path/to/my/errors/error-404.html
ErrorDocument404 /error-404.html 
 
 <ディレクトリ "/path/to/my/errors">
にはすべての許可が必要です
 </ Directory> 
1
Unbeliever

ErrorDocumentを外部リソースとして設定できます。

ErrorDocument 500 http://error.example.com/server_error.html

したがって、メインの仮想ホストでスクリプトを参照するだけで済みます。

信じられないかもしれませんが、これは ErrorLogのドキュメント に記載されています。

0
user9517