Chinaunix首页 | 论坛 | 博客
  • 博客访问: 952571
  • 博文数量: 80
  • 博客积分: 2380
  • 博客等级: 大尉
  • 技术积分: 1049
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-14 11:06
个人简介

Only to find a successful way, not to find excuses for failure!

文章分类

全部博文(80)

文章存档

2016年(2)

2015年(4)

2014年(10)

2013年(10)

2012年(7)

2011年(17)

2010年(30)

分类: LINUX

2010-04-16 22:15:47

取消apache对.htaccess文件的限制

 
问题
当访问一个站点的时候,报告“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参数方可。
解决方法有两种:
1) 取消.htaccess文件。
移动或者改名.htaccess文件。但是这样会造成一些特殊配置的丢失,可能影响站点的正常运行。
2) 登陆服务器,修改本站点的配置文件,允许用户使用.htaccess文件定义自己的站点。
vi /usr/prima/etc/httpd/virtual.conf
找到需要修改的站点,例如我们要修改test.com这个站点,可以找到如下一段配置:

ServerName test.com
DocumentRoot /www/users/test.com
ServerAlias
Action cgi-wrapper /cgiwrap/cgiwrap/user_oex0azf4
AddHandler cgi-wrapper .php .php4 .phtml
上边是一个支持php站点的配置项。
加入要允许tesc.com这个站点使用Options参数,则在上边的配置中加入一段,如下:

ServerName test.com
DocumentRoot /www/users/test.com
ServerAlias
Action cgi-wrapper /cgiwrap/cgiwrap/user_oex0azf4
AddHandler cgi-wrapper .php .php4 .phtml

Allowoverride Options

请确认“Directory”参数后边的“/www/users/test.com”目录是当前要修改的站点的目录。
修改完成后保存文件并退出。重新启动apache服务:/etc/init.d/httpd restart ,即可。
如果要允许使用ErrorDocument,则把“Allowoverride Options”修改为“Allowoverride ErrorDocument”即可。
如果要设置同时允许多个,则可以写为“Allowoverride Options ErrorDocument”,中间用空格隔开。
注意:
1) Allowoverride参数必须被夹在之间,否则无效。
2) 请不要对/www目录设置Allowoverride参数,一定要对单个站点目录做定义,否则会有安全隐患。
 
阅读(4327) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~