apache ErrorDocument 404 配置404错误页面的例子,示例与说明如下。
ErrorDocument 404 /base/world_map6.png
#全局生效
NameVirtualHost *:80
<VirtualHost *:80>
servername haha.92xy.com
ErrorDocument 404 /base/world_map6.txt
</VirtualHost>
<VirtualHost *:80>
servername mm.92xy.com
ErrorDocument 404 /base/world_map6.png
</VirtualHost>
<VirtualHost *:80>
servername dd.92xy.com
ErrorDocument 404 http://192.168.166.209/hello/
</VirtualHost>
<VirtualHost *:80>
servername pp.92xy.com
ErrorDocument 404 default
</VirtualHost>
<VirtualHost *:80>
servername kk.92xy.com
ErrorDocument 404 /system.php
</VirtualHost>
<VirtualHost *:80>
servername ll.92xy.com
ErrorDocument 404 "Sorry can't allow you access today"
</VirtualHost>
<VirtualHost *:80>
servername bb.92xy.com
DocumentRoot "/usr/local/apache2/htdocs/base/"
ErrorDocument 404 /world_map6.png
</VirtualHost>
1.ErrorDocument 在server config作用域指定时将作为全局生效
2.在virtual host 作用域指定时 则此生效
3.如果404.html的小于512字节的话,那么IE会认为这个错误页面不够“友好”,会忽视掉的
4.注意,如果为ErrorDocument指定了一个外部的URL(比如说,任何在开头指示了类似"http"这样的访问方法的字符串),Apache将会向客户端发送一个重定向指令来告诉它在哪里找到这个文档,哪怕这个文档最后还是在这个服务器上。这里面包含着一些暗示:最重要的就是客户端无法接收到原始的错误状态代码,取而代之的是一个重定向状态代码。这将会使一些用状态代码来判断一个URL是否有效的web机器人或其它客户端产生误解。另外,如果您在"ErrorDocument 401"中使用了外部URL,客户端将不会提示用户输入密码,因为它根本没收到这样一个401的状态代码。
5.指定404 目录文件时 则为DocumentRoot 相对目录 VirtualHost作用域中的DocumentRoot优先级高。