Scusa ma perchè:
codice:
RewriteCond /index.php !-f # 
RewriteRule ^$ index.php [L]
la cond dice che se index.php non è un file allore esegui la rule, a che ti serve?

Questa da sola non funziona?
codice:
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !pages/ 
RewriteRule ^(.*)$ pages/$1