Thread: Miscellaneous Hacks - 404 / 301 after import redirect on import ids
View Single Post
  #33  
Old 09-12-2008, 02:46 AM
trigatch4 trigatch4 is offline
 
Join Date: Feb 2007
Posts: 90
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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}";
            }
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01126 seconds
  • Memory Usage 1,777KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete