Попробуйте это правило в .htaccess файле в Вашем / каталоге dir:
RewriteCond %{HTTP_HOST} !=dir.example.com
RewriteRule .* http://dir.example.com/$0 [L,R=301]
Или это правило в Вашем корневом каталоге:
RewriteCond %{HTTP_HOST} !=dir.example.com
RewriteRule ^dir(/(.*))?$ http://dir.example.com/$2 [L,R=301]
Это будет хорошо работать. Windows обнаружит, это - 32-разрядный EXE, оберните его в Wow64, и далеко Вы идете.
Я редко использую "Программные файлы" или его 32-разрядный эквивалент, поскольку у меня есть главный объект неприязни о названиях каталогов с пробелами в. Я не испытал проблем вообще.