A friend took a look and here is what they came up with. I'm hoping someone can go over it and see if it is okay as I can't really "test" the 301 redirect until I'm live with the new site. Greatly appreciate your help
This sets the variables we use below to determine if we need to parse the old urls.
Code:
case 'smf'
$old_forum_script = "index.php?board="; //http://mysite.com/index.php?board=5.0
$old_thread_script = "index.php/topic,"; //http://mysite.com/index.php/topic,775.0.html
$old_post_script = ".msg"; //http://mysite.com/index.php/topic,603.msg6020.html#new
$old_user_script = "index.php?action=profile,u="; //http://mysite.com/index.php?action=profile;u=41
break;
This is the actual parser.
Forum Link - Tell it to grab the querystring value for 'board'
Code:
// It's a forum link
if (strpos($_SERVER['REQUEST_URI'], "/{$old_folder}{$old_forum_script}") === 0)
{
$action = 'forum';
$old_id = intval($_GET['board']);
$sql = "SELECT forumid FROM {$tableprefix}forum WHERE importforumid={$old_id}";
}
Thread Link - Tell it to grab the int value for thread id
Code:
// It's a thread link
if (strpos($_SERVER['REQUEST_URI'], "/{$old_folder}{$old_thread_script}") === 0)
{
$action = 'thread';
// Cuts 775 out of this : /index.php/topic,775.0.html
$old_id = intval(substr(substr($_SERVER['REQUEST_URI'], 17), 0, strpos(substr($_SERVER['REQUEST_URI'], 17), '.')));
$sql = "SELECT threadid FROM {$tableprefix}thread WHERE importthreadid={$old_id}";
}
Post Link - Tell it to grab the int value for post
Code:
// It's a post link
if (strpos($_SERVER['REQUEST_URI'], "/{$old_folder}{$old_post_script}") === 0)
{
$action = 'post';
// Cuts 6020 out of this /index.php/topic,603.msg6020.html#new
$old_id = (substr(substr($_SERVER['REQUEST_URI'], intval(strpos(substr($_SERVER['REQUEST_URI'], 0), '.msg')) + 4), 0, strpos(substr($_SERVER['REQUEST_URI'], intval(strpos(substr($_SERVER['REQUEST_URI'], 0), '.msg')) + 4), '.')));
$sql = "SELECT postid FROM {$tableprefix}post WHERE importpostid={$old_id}";
}
User Link - Tell it to grab the int value for users profile
Code:
// It's a user link
if (strpos($_SERVER['REQUEST_URI'], "/{$old_folder}{$old_user_script}") === 0)
{
$action = 'user';
// Cuts 41 out of this : index.php?action=profile;u=41
$old_id = intval(substr($_SERVER['REQUEST_URI'], 28, 4));
$sql = "SELECT userid FROM {$tableprefix}user WHERE importuserid={$old_id}";
}