自定义错误文档不显示@localhost 测试服务器

自定义错误文档不显示@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

我完全被难住了——通过谷歌也无法找到任何信息。

答案1

我读到,Ubuntu 中默认 VirtualHost 的基本 Apache 配置文件是将 DocumentRoot 目录中的 AllowOverride 指令设置为 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 的帮助 wiki 上或这个帖子在 UbuntuForums.org 上查看更详细的解释。希望对您有所帮助。或者,您可以在 Apache 配置文件中的 VirtualHost 记录中设置 ErrorDocument 指令,而不是 .htaccess 文件。

相关内容