Я бы настроил ваше правило переписывания наоборот:
RewriteEngine On
RewriteRule ^login$ /index.php?login=true
Таким образом, если пользователь переходит к http://yourserver.com/login, фактически используется страница http://yourserver.com/index.php?login=true,, но в браузере отображается первый URL-адрес. Я полагаю, это то, что вы пытаетесь достичь.
Если вам действительно нужно сделать это в том направлении, о котором вы просили, вы можете попробовать что-то вроде этого:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^login=true$
RewriteRule ^index\.php$ /login [L,R=301]
Это не удастся, если есть дополнительные параметры запроса.
Если вы хотите перенаправить http://yourserver.com/index.php на http://yourserver.com, вы можете просто добавить следующее правило перезаписи:
RewriteRule ^index\.php$ / [L,R=301]