Я запускаю локальный тестовый сервер (в 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.
Я читал, что базовый файл конфигурации Apache для VirtualHost по умолчанию в Ubuntu должен установить для директивы AllowOverride в каталоге DocumentRoot значение None вместо All. Это означает, что файлы .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>
Видеть Включение использования файлов Apache htaccess в справочной вики Ubuntu или эта почта на UbuntuForums.org для более подробного объяснения. Надеюсь, это поможет. В качестве альтернативы вы можете установить директиву ErrorDocument в записи VirtualHost в файле конфигурации Apache вместо файла .htaccess.