freebsd中apache添加404自定义页面的方法

发布时间:2019-07-15编辑:脚本学堂
freebsd中apache添加404自定义页面的方法。平台:FREEBSD,apache版本:httpd -v Server version: Apache/2.2.6 (FreeBSD)

平台: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参数方可。

按以下方法定义目录
 

复制代码 代码如下:
<VirtualHost *:80>
    ServerAdmin webamster@zocc.net
    DocumentRoot "/usr/local/www/mrtg/"
    <Directory /usr/local/www/mrtg>
    Allowoverride Fileinfo Authconfig
    </Directory>

注意:
1) Allowoverride参数必须被夹在<Directory>和</Directory>之间,否则无效。
2) 请不要对/www目录设置Allowoverride参数,一定要对单个站点目录做定义,否则会有安全隐患
3) 不要以为就此完了,你可能会发现404.html根本跳转不到他上面去,嘿嘿,原因是你的404.html文件太小了,IE认为找不到,又是404错误。
如果404.html的小于512字节的话,那么IE会认为这个错误页面不够“友好”,会忽视掉的。

方法二:
ee /usr/local/etc/apache22/httpd.conf
然后添加:
ErrorDocument 404 http://domain/404

总结,方法二更好一些,简单易操作。