我正在尝试为我的网站创建自定义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文件中的内容 - 但它与上面列出的内容不同:
答案 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文件,这里有一个解释它的链接:
答案 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-pages
是mywebsite
文件夹中的子文件夹,其中包含自定义错误页面。确保重新启动apache以查看更改。
$sudo /etc/init.d/apache2 reload
答案 3 :(得分:1)
你输入的网址是什么,因为默认的404页面必须是绝对的或相对于根文件夹的:这就是为什么有些人会把它的URL视为重写引擎的url,它与.htaccess所在的文件夹是相对的错误