It's possible to make the redirection, if you have not converted yet.
The merge system stores the old_id => new_id correlation during the merge. Only it removes this information once it's done merging. If you change the merge system to keep the info, you can write a small PHP script that redirects threads for you.
In convert/resources/functions.php, find
$drop_list = array(
"users" => array('import_uid', 'import_usergroup', 'import_additionalgroups', 'import_displaygroup'),
"forums" => array('import_fid', 'import_pid'),
"threads" => array('import_tid', 'import_uid', 'import_poll'),
"polls" => array('import_pid', 'import_tid'),
"usergroups" => array('import_gid'),
"privatemessages" => array('import_pmid'),
"events" => array('import_eid'),
"attachments" => array('import_aid'),
);
For threads redirection, you want to keep the import_tid for threads, so take import_tid out of the drop list for threads:
"threads" => array('import_uid', 'import_poll'),
Then in your forum main directory you write a small mergeredirect.php:
<?php
define("IN_MYBB", 1);
define("NO_ONLINE", 1);
require("global.php");
// Did we get an old thread id?
if($mybb->input['tid'])
{
// See if we can get a new one.
$import_tid = intval($mybb->input['tid']);
$query = $db->simple_select("threads", "tid", "import_tid=${import_tid}");
$result = $db->fetch_array($query);
if($result)
{
// Redirect to the new thread URL...
header("Location: ${settings['bburl']}/".get_thread_link($result['tid']), true, 301);
exit;
}
}
// By default, redirect back to index.
header("Location: ${settings['bburl']}", true, 301);
exit;
?>
Then in your .htaccess you add a rewrite rule that makes request for your old urls go to the mergeredirect.php
RewriteRule ^topic([0-9]+)\.html$ mergeredirect.php?tid=$1 [L]
After 4-8 weeks or so, consider removing the redirection and the import_tid field from the threads table.
Also, a Sitemap (Google SEO plugin) may help Google in picking up your new links.