ローカルテストサーバー(Ubuntu 10.04上)を実行していますが、何らかの理由で、カスタムの403
/404
エラーメッセージが表示されないようです。コマンド出力は次のとおりです。
[ /var/www ] # ls -al
:
drwxr-xr-x 5 www-data www-data 4096 2010-07-31 18:40 .
drwxr-xr-x 16 root root 4096 2010-05-14 19:56 ..
-rwxr-xr-x 1 www-data www-data 493 2010-07-31 18:32 403.html
-rwxr-xr-x 1 www-data www-data 493 2010-07-31 18:10 404.html
-rwxr-xr-x 1 www-data www-data 56 2010-07-31 18:25 .htaccess
[ /var/www ] # cat .htaccess
:
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
私は完全に困惑しています-Googleでも情報を見つけることができません。
UbuntuのデフォルトのVirtualHostの基本的なApache構成ファイルは、DocumentRootディレクトリのAllowOverrideディレクティブをAllではなくNoneに設定することであると読みました。これは、.htaccessファイルが解析されないため、ErrorDocumentディレクティブが解析されないことを意味します。
これをAllowOverride All
に変更すると、.htaccessファイルを使用できるようになり、カスタムErrorDocumentsが機能するはずです。
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have Apache2's default start page
# in /Apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /Apache2-default/
</Directory>
詳細な説明については、Ubuntuのヘルプウィキの Apache htaccessファイルの使用の有効化 またはUbuntuForums.orgの この投稿 を参照してください。お役に立てば幸いです。または、.htaccessファイルの代わりにApache構成ファイルのVirtualHostレコードにErrorDocumentディレクティブを設定することもできます。