Назад | Перейти на главную страницу

пользовательские документы об ошибках не отображают тестовый сервер @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.

Я читал, что базовый файл конфигурации 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.