RewriteCond %{THE_REQUEST} ^[a-zA-Z]+\ ([^\ ]+)\ HTTP/
RewriteRule .* index.php?q=%1 [L]
Скажите, зачем вам здесь RewriteCond, если в переменную q надо передать просто всё, что в строке запроса? И что это за пробелы (подчеркнуто: "… Z]+
\ ([^
\ ]+ ...")? Возможно, парсер зажевал.
Попробуйте оставить такую регулярку:
RewriteRule ^(.*)$ index.php?q=$1 [QSA, L]
Либо, если смотреть ваш коммент к предыдущему ответу, то там не хватает:
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ index.php?q=$1 [QSA,L]