Попробуйте изменить
RewriteCond %{REQUEST_FILENAME} !-f
до
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Это пропустит как каталоги, так и файлы
Edit:
Я думаю, что это правило нарушается (также):
RewriteRule ^([^.]+)$ $1.html [QSA]
Попробуйте вместо этого
RewriteRule (^|/)([^.]+)$ $2.html [QSA]