2012-11-08 183 views
1

我有一个.htaccess文件。内容是:.htaccess内部服务器错误500

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule (.*\.(png|gif|jpg|jpeg|js|css|swf))$ webroot/img_handler.php?arg=$1 [L] 
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
</IfModule> 
# test 5 

# disable directory browsing -IMPORTANT, do NOT remove. 
Options -Indexes 

# protect the htaccess file 
<files .htaccess> 
order allow,deny 
deny from all 
</files> 

# disable the server signature 
ServerSignature Off 


# protect php.ini 
<files *.ini> 
order allow,deny 
deny from all 
</files> 

这是导致内部服务器错误,有什么问题?

THX: pixeles

回答

4

这是因为这行:

RewriteRule (.*) webroot/$1 [L] 

重写引擎一直循环到URI停止变化,而且(.*)模式匹配一切,包括webroot/whatever。尝试在它前面添加一个条件:

RewriteCond %{REQUEST_URI} !webroot 
RewriteRule (.*) webroot/$1 [L]