【转】Forbidden关于无权限访问目录的问题
此文总结得较全面:
转自:http://hi.baidu.com/tian%C2%BD%C0%DA/blog/item/2569ba0337e15b034bfb5191.html
问题:You don't have permission to access / on this server.
说法一:hi.baidu.com/%D0%C7%BC%CA%C0%CB%D7%D31988/blog/item/449a1cfc676f7389b801a026.html
<Files ~>
AllowOverride AuthConfig FileInfo Indexs Limit Options
Order allow ,deny
Deny from all-----------------注意:就是这儿!!--->把这行去掉或注释掉就行!!!
</Files>
不过原httpd.conf文件中是没有这一段的。只有
<FilesMatch "^\.ht"> # 什么意思呢。匹配除.htt开头的文件?
Order allow,deny
Deny from all
</FilesMatch>
经查,这一段是属于服务器安全配置方面的。《php和mysql web开发》中写到:通过在httpd.conf中引入适当的指令,隐藏一些不希望被看到的文件。例如,要防止inc文件被看到,则:
<Files ~ “\.inc$”>
Order allow,deny
Deny from all
</Files>
上面文章还讲到怎么去解决错误的方法,值得借鉴。好了,继续说 403 forbidden
说法二:hi.baidu.com/hzw513/blog/item/ad85c0f56e5e0923bd310930.html
1、修改了httpd.conf中 documentRoot 的值;但没有修改下面不远处 <Directory "url"></Directory>中的url ;这个很好解决,直接改为一样,重启服务器就行了。
2、你没有访问这个目录的权限;不过这种情况windows下很少。一般多在linux下。 解决方法就是 chmod 701 /home/www ;如不行在参考其他情况。
不过以上都不是我遇到的情况。我的目录文件夹从ftp上下载下来。权限都是777的。所以没有这种情况。
说法三:hi.baidu.com/libk/blog/item/f9e32b34af4c90335ab5f5cd.html
经过以上验证后,确定不是以上问题。那么到底是什么原因呢。。。 忽然看到某个帖子的留言说“看apache日志” 忽然明白,到日志里面不就知道是什么问题了么! 说实话我挺笨的。
在 log/error.log中看到了
“Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: F:/www/”
这样一段话,于是搜之;得到如上解答:
1. 如果没有启用mod_rewrite,可以用Options None 来保证安全性。
2. 如果启用了mod_rewrite, 那么Options就一定要启用FollowSymLinks或者SymLinksifOwnerMatch, 否则会出现Fobidden页面禁止访问的错误。
查看错误日志会有这样的出错信息:(Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /location/to/your/rewrite/url)
查看 确认我的rewrite是打开的。可是options 却是 options indexes Multiviews ;于是改为 fllowsymlinks ;重启,真的就行了!
不得不说原来如此。要多看看log啊。options具体选项详解参见这里