Внутренняя ошибка сервера .htaccess 500

У меня есть файл .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>

и это вызывает внутреннюю ошибку сервера, в чем проблема?

спасибо: пиксели


person Community    schedule 08.11.2012    source источник


Ответы (1)


Это из-за этой строки:

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

Механизм перезаписи зацикливается до тех пор, пока URI не перестанет изменяться, а шаблон (.*) не будет соответствовать всему, включая webroot/whatever. Попробуйте добавить перед ним условие:

RewriteCond %{REQUEST_URI} !webroot
RewriteRule    (.*) webroot/$1 [L]
person Jon Lin    schedule 08.11.2012