索引文件存在且有效。 当我使用ONLY行创建.htaccess文件时:
RewriteEngine On
服务器上的任何页面都会给我:
禁止访问!
您无权访问请求的对象。它是 读取保护或服务器无法读取。
如果您认为这是服务器错误,请与网站管理员联系。 错误403 mysite.com 2011年10月5日星期三22:25:25 Apache / 2.2.3 (Linux的/ SUSE)
一些服务器信息:
已加载模块核心prefork http_core mod_so mod_actions mod_alias mod_auth_basic mod_authn_file mod_authz_host mod_authz_groupfile mod_authz_default mod_authz_user mod_authn_dbm mod_autoindex mod_cgi mod_dir mod_env mod_expires mod_include mod_log_config mod_mime mod_negotiation mod_setenvif mod_ssl mod_suexec mod_userdir mod_rewrite mod_php5
Apache版本:
SERVER_SOFTWARE Apache / 2.2.3(Linux / SUSE)
也这样做了:
Options FollowSymLinks
在httpd.conf的目录部分
Log说的只是错误的事实,而不是原因:
89.112.xx.x - - [05/Oct/2011:22:32:34 +0200] "GET /info.php HTTP/1.1" 403 1040 "-" "Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
::1 - - [05/Oct/2011:22:32:45 +0200] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
感谢您的帮助!
答案 0 :(得分:36)
放置
Options +SymLinksIfOwnerMatch
作为.htaccess文件的第一行。这解决了我的问题。
答案 1 :(得分:2)
最可能的原因是您的主conf文件具有受限制的权限。你有这样一句话:
<Directory />
AllowOverride None
</Directory>
在主conf文件中?这将阻止您使用.htaccess文件基本上更改任何内容。
您可以在他们的网站上找到有关apache permissions的更多信息。
答案 2 :(得分:2)
在httpd.conf中检查代码块。默认情况下,它是一个非常严格的限制。如果它只是本地的而你并不在乎,你可以打开它,如:
<Directory />
Options All
AllowOverride All
Order deny,allow
Allow from all
</Directory>
这可能会有所帮助,或者可能是文件权限本身。 / var / log / apache2 / error_log和/ var / log / apache2 / access_log还可以为您提供更详细的信息。
答案 3 :(得分:0)
感谢塔伦(Tarun)的回答,Options All
为我做了这项工作:
<Directory "/path/to/apache/root"/>
Options All
...
</Directory>