web-dev-qa-db-ja.com

カスタムエラードキュメントに@localhostテストサーバーが表示されない

ローカルテストサーバー(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でも情報を見つけることができません。

1
Zaz

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ディレクティブを設定することもできます。

1
runlevelsix