Хорошо, я понял это. Это происходило из-за того, что я не закрыл совпадение "from" символом "$". Вот как это должно выглядеть:
<rule>
<condition name="host">www.foo-d.com</condition>
<from>^/foo/bal(\?)?(.*)?$</from>
<to type="redirect" last="true">http://www.bar-d.mtvi.com/foo/bar?test=testString&$2</to>
</rule>
Единственная проблема здесь заключается в том, что если в исходном запросе нет строки запроса, stmt «to» по-прежнему добавляет амперсанд в конце строки запроса. Чтобы обойти это, вы можете создать 2 правила перезаписи, одно из которых соответствует строке запроса, а другое - без.