Apache的自定义404错误问题

时间:2010-08-03 15:07:16

标签: apache .htaccess xampp

我正在尝试为我的网站创建自定义404错误。我正在Windows上使用XAMPP对此进行测试。

我的目录结构如下:

error\404page.html
index.php
.htaccess

我的.htaccess文件的内容是:

ErrorDocument 404 error\404page.html

这会产生以下结果:

alt text http://i38.tinypic.com/24qk0fk.jpg

然而这不起作用 - 是否与斜杠的方式或我应该如何引用错误文档有关?

网站站点文档位于Web根目录的子文件夹中,如果这对我应该引用的方式有什么影响吗?

先谢谢你。

当我将文件更改为

ErrorDocument 404 /error/404page.html

我收到以下错误消息,而不是我链接的html文件中的内容 - 但它与上面列出的内容不同:

alt text http://i32.tinypic.com/kci5b7.jpg

4 个答案:

答案 0 :(得分:57)

ErrorDocument指令在提供本地URL路径时,需要从DocumentRoot完全限定路径。在您的情况下,这意味着ErrorDocument的实际路径是

ErrorDocument 404 /JinPortfolio/error/404page.html

当您在第二次尝试中更正它时,您看到该页面的原因是因为http://localhost/error/404page.html不存在,因此找到错误处理文档时出现404错误。

答案 1 :(得分:11)

由于性能问题,

.htaccess文件默认在Apache中被禁用。启用.htaccess文件后,Web服务器必须在其所在的每个子目录中的每次命中时检查它。

我认为重要的是要注意。如果你想打开.htaccess文件,这里有一个解释它的链接:

http://www.tildemark.com/enable-htaccess-on-apache/

答案 2 :(得分:4)

您可以将它们添加到任何虚拟主机文件中,而不是将它们添加到.htaccess文件中。

<VirtualHost *:80>

    DocumentRoot /var/www/mywebsite

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ErrorDocument 404 /error-pages/404.html
    ErrorDocument 500 /error-pages/500.html
    ErrorDocument 503 /error-pages/503.html
    ErrorDocument 504 /error-pages/504.html

</VirtualHost>

error-pagesmywebsite文件夹中的子文件夹,其中包含自定义错误页面。确保重新启动apache以查看更改。

$sudo /etc/init.d/apache2 reload

答案 3 :(得分:1)

你输入的网址是什么,因为默认的404页面必须是绝对的或相对于根文件夹的:这就是为什么有些人会把它的URL视为重写引擎的url,它与.htaccess所在的文件夹是相对的错误