web-dev-qa-db-ja.com

Apache2でVirtualHostのErrorDocumentを指定するにはどうすればよいですか?

私はApache2サーバーを持っており、同様の定義を持ついくつかのvhostがあります。

<VirtualHost *:80>
    DocumentRoot /var/www/html/Host1/
    ServerName Host1.loc
    <Directory /var/www/html/Host1>
        AllowOverride FileInfo Options AuthConfig
    </Directory>
    ErrorDocument 404 /index.php?error=404
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/Host2/
    ServerName Host2.loc
    <Directory /var/www/html/Host2>
        AllowOverride FileInfo Options AuthConfig
    </Directory>
    ErrorDocument 404 /index.php?error=404
</VirtualHost>
...
<VirtualHost *:80>
    DocumentRoot /var/www/html/hostN/
    ServerName hostN.loc
    <Directory /var/www/html/hostN>
        AllowOverride FileInfo Options AuthConfig
    </Directory>
    ErrorDocument 404 /index.php?error=404
</VirtualHost>

404ページをカスタマイズしたいのですが。

問題は、いずれかのホストで404ページをテストしようとすると、最後の仮想ホストからページが表示されることです。私の設定の何が問題になっている可能性がありますか?

2
Antonio

ErrorDocumentディレクティブをDirectoryタグ内に配置します。

トランク: https://httpd.Apache.org/docs/trunk/custom-error.html

2.2: https://httpd.Apache.org/docs/2.2/mod/core.html#errordocument

カスタムエラードキュメントは、グローバル、仮想ホスト、またはディレクトリコンテキストで使用できるErrorDocumentディレクティブを使用して構成されます。 AllowOverrideがFileInfoに設定されている場合、.htaccessファイルで使用できます。

1
monguz