RewriteCond %{REQUEST_FILENAME} !-f
- если это не файлRewriteCond %{REQUEST_FILENAME} !-d
- и если это не файлRewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
тогда перенаправить на ?q?:
- не учитывать эту группу, обрати внимание я подставляю 1 группу хотя по факту она 2, сделано это просто для удобства.(...)
собственно группаq\=
- не забываем экранировать спец симсолы(.+)
- собственно тоже самое что и .* но не включая пустоту, поскольку нет запроса нет и смысла.(?:$|&)
- следовательно или & или $ то есть не учитывать группу в которой содержится или конец строки или продолжение гет параметра.
2. а не нужно ее убирать.
Запрети вообще индексацию таких страниц, и в принципе запрети индексацию всех гет параметров.