web-dev-qa-db-ja.com

apache:絶対ErrorDocument相対/ var / www /?

私の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で発生します。

1
cweiske

このエラーの理由は、デフォルトの構成でした。

Alias /error/ "/var/www/error/"

この行を削除すると、機能しました。

1
cweiske