2010-08-03 46 views
21

我正在尝试为我的网站创建一个自定义404错误。我正在Windows上使用XAMPP进行测试。Apache自定义404错误问题

我的目录结构如下:

error\404page.html 
index.php 
.htaccess 

我的.htaccess文件的内容是:

ErrorDocument 404 error\404page.html 

这将产生以下结果:

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

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

网站站点文档驻留在Web根目录的子文件夹中,如果这对我应该引用的内容有什么影响?

谢谢您的高级。

当我更改该文件是

ErrorDocument 404 /error/404page.html 

我收到以下错误消息,这是不是有什么是我所链接的HTML文件中 - 但什么是上面列出的是不同的:

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

+2

您是否尝试将斜杠更改为正斜杠?不确定Apache是​​否支持反斜杠。 – 2010-08-03 15:08:32

+0

ErrorDocument 404 /error/404page.html 是现在它是什么,这引发了404异常 - 但是这不是我已链接的HTML文件中的异常。 – Malachi 2010-08-03 15:10:40

回答

53

ErrorDocument指令,提供本地URL路径时,预计的路径是从DocumentRoot完全合格。在你的情况,这意味着对ErrorDocument实际路径是

ErrorDocument 404 /JinPortfolio/error/404page.html 

当你在第二次尝试纠正它,原因你看到的页面,而不是因为http://localhost/error/404page.html不存在,因此对那里的位在查找错误处理文档时出现404错误。

+0

只需在htaccess中声明它?我有服务器错误信息! – 2014-10-10 05:00:17

+0

好吧,我永远不会得到它。 :(我总是得到错误! – Hydro 2016-02-19 12:57:26

11

由于性能问题,Apache在这些日期内默认禁用.htaccess文件。启用.htaccess文件时,Web服务器必须在其所在位置的每个子目录中检查每个命中。

刚刚发现这很重要。如果您无论如何要打开.htaccess文件,下面是解释它的链接:

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

1

无论你输入什么url作为默认的404页面,都必须是根文件夹的绝对或相对位置:这就是为什么有些人会犯这样的错误:像重写引擎的url,它是相对于.htaccess所在的文件夹位于。

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