RewriteCond %{QUERY_STRING} (?:^|&)t\=21(?:$|&)
RewriteRule ^mydomain\.com/thread\.php$ /mydomain.com/thread/21? [L,R=301]
Это прям если нужно редирект сделать
GET не является частью URL и выделяется отдельно. через %{QUERY_STRING}
так что у вас по идее нужно было сделать так.
index.php?route=%1
%1 - это $1 но если ты выделяешь в RewriteCond
Что же касается ЧПУ
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/index.php$
RewriteRule ^(.*)$ /index.php [L]
То я бы добавил еще отрицание самого индекса дабы не создать цикла.
ps
?:
не учитывать эту группу не обязательное правило