Chinaunix首页 | 论坛 | 博客
  • 博客访问: 646198
  • 博文数量: 197
  • 博客积分: 4858
  • 博客等级: 上校
  • 技术积分: 2162
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-06 22:46
文章分类

全部博文(197)

文章存档

2011年(30)

2010年(21)

2009年(25)

2008年(80)

2007年(41)

分类: BSD

2009-06-23 18:57:25

今天无意间想起来了以前做过练习,自定义404错误页面,一直没有成功,就再试了一次,我的平台是FREEBSD,

apache版本:httpd -v
Server version: Apache/2.2.6 (FreeBSD)
Server built:   Oct 26 2007 15:11:39

已经配置完成的.htaccess文件,如下所示:

ErrorDocument 404 /Error.html
AuthName "MRTG Authcation"
AuthType basic
AuthUserFile /usr/local/passwds
require valid-user

这个目录是一个虚拟目录,ErrorDocument 404 /Error.html
那么访问时会发现出现500错误,

查看日志,发现是:

报告“500 Internal Server Error”,查看/var/log/httpd/error_log,报告“/www/users/test.com/.htaccess: Options not allowed here”,或者报告“ErrorDocument not allowed here”

这是由于客户在自己的网站的目录内放置了.htaccess文件。使用.htaccess文件,可以对网站目录的一些特性做子定义,如调整默认首页顺序、设置是否允许目录浏览、对网站目录做用户验证等功能进行定义。

而Prima系统所用的apache,出于虚拟主机的安全考虑,默认是禁止用户使用.htaccess文件对系统功能做自定义的。所以访问这个站点会出现500 Internal Server Error的错误,同时在/var/log/httpd/error_log中也会看到相应的报错。

比如报告“Options not allowed here”,则是用户在.htaccess文件中,使用了Options参数对自己的站点做了定义。所以我们需要在apache的配置中允许当前用户使用Options参数方可。如果报告“ErrorDocument not allowed here”,则是用户在.htaccess文件中使用了ErrorDocument参数。所以我们需要在apache的配置文件中,允许这个站点使用ErrorDocument参数方可。

按以下方法定义目录


    ServerAdmin
    DocumentRoot "/usr/local/www/mrtg/"
   
    Allowoverride Fileinfo Authconfig
   

注意:

1) Allowoverride参数必须被夹在之间,否则无效。

2) 请不要对/www目录设置Allowoverride参数,一定要对单个站点目录做定义,否则会有安全隐患

3) 不要以为就此完了,你可能会发现404.html根本跳转不到他上面去,嘿嘿,原因是你的404.html文件太小了,IE认为找不到,又是404错误。如果404.html的小于512字节的话,那么IE会认为这个错误页面不够“友好”,会忽视掉的。

 

方法二:

ee /usr/local/etc/apache22/httpd.conf

然后添加:

ErrorDocument 404

方法二会更好一些!

阅读(1543) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-06-23 19:18:19

wahaha