Per Fabio e chiunque abbia l'esigenza di fare dei 301 "in massa" da un dominio su IIS a un altro dominio (su IIS o su Apache)...
Io avevo lo stesso problema, e l'ho risolto come segue:
preso un account su server Linux + Apache per il vecchio dominio;
messo un file .htaccess siffatto nella root:
<FilesMatch "\.(asp)$">
ForceType application/x-httpd-php
</FilesMatch>
DirectoryIndex default.asp
ErrorDocument 404 /404.php
messo un file default.asp e un file 404.php siffatti nella root:
<?php
$myURL="http://www.nuovodominio.com/";
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$myURL);
exit();
?>
riprodotto fedelmente la struttura delle directory del vecchio sito e creati singoli file .asp per le pagine per le quali avevo bisogno di mappare il redirect in maniera più precisa agli URL del nuovo dominio (nel mio caso cambiava non solo la piattaforma, ma anche la struttura del sito; la corrispondenza fra le singole unità di contenuto era invece sostanzialmente univoca dal vecchio al nuovo sito):
<?php
$myURL="http://www.nuovodominio.com/";
$myParms= [ricavato i nuovi parametri in base alle variabili $_GET presenti sui vecchi URL qui];
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$myURL.$myParms);
exit();
?>
trasferito il vecchio dominio sul nuovo server.
Soluzione "artigianale" che ha funzionato a meraviglia su un sito di alcune migliaia di pagine: tempo 1 mese, e i nuovi URL erano tutti indicizzati; tempo 3 mesi, e anche il PR (5) era migrato sul nuovo dominio. E, quello che è perfino più importante, non una sola visita è andata persa.