Try...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
This will use index.php as the internal script for the request (with the original relative url appended as a query string to index.php), it will not redirect to index.php.
Also make sure that you have the proper options and allowoverride set for this directory to be able to use rewriterules.. Which includes needing FollowSymlinks.
Test with -
Options All
AllowOverride All
...in httpd.conf or where the Directory is defined. Restart Apache.
Make sure that mod_rewrite is loaded.
And also check Apache's error log.
.htaccess
file? See the Apache manual