RewriteEngine on给出错误403

时间:2011-10-05 20:28:40

标签: apache mod-rewrite httpd.conf

索引文件存在且有效。 当我使用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)"

感谢您的帮助!

4 个答案:

答案 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>