私のApacheVirtualHost
にはErrorDocument
ディレクティブが含まれています。
<VirtualHost *:80>
ServerName test
DocumentRoot /var/www/html/test/
ErrorDocument 404 /error/404.txt
</VirtualHost>
ファイル/var/www/html/test/error/404.txt
は存在します。
存在しないファイルにアクセスしようとすると、Apacheからエラーエラーメッセージが表示されます。
要求されたURL/fooがこのサーバーで見つかりませんでした。
さらに、ErrorDocumentを使用してリクエストを処理しようとしたときに、404 NotFoundエラーが発生しました。
エラーログには次のものが含まれます。
[エラー]ファイルが存在しません:/ var/www/html/test/foo [エラー]ファイルが存在しません:/var/www/error/404.txt
なぜApacheは、仮想ホストのDocumentRoot
に対してではなく、/var/www
(Apacheユーザーのホームディレクトリ)に対してエラードキュメントパスを作成するのですか? ドキュメントで説明 ?
URLは、ローカルWebパス(DocumentRootに対して)のスラッシュ(/)で始めることができます...
これは、CentOS6.7のApache2.2で発生します。
このエラーの理由は、デフォルトの構成でした。
Alias /error/ "/var/www/error/"
この行を削除すると、機能しました。