1

我有一个 .htaccess 文件。内容是:

<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: 像素

4

1 回答 1

4

这是因为这条线:

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

重写引擎循环直到 URI 停止更改,并且(.*)模式匹配所有内容,包括webroot/whatever. 尝试在它前面添加一个条件:

RewriteCond %{REQUEST_URI} !webroot
RewriteRule    (.*) webroot/$1 [L]
于 2012-11-08T15:26:30.227 回答