Скрыть объявление
Вышла новая версия XenForo 1.5.14 Nulled By XenForo.Info. Поспешите обновить свои форумы на новую версию прямо сейчас!

Redirection Script for phpbb 3.0 2013-08-06

Перенос ссылок c phpBB 3 на XenForo.

  1. Hope
    Чтобы после переезда с phpBB 3 на XenForo не потерять в индесации, был написан этот скрипт. Он макимально приблизит новые ссылки на сообщения, темы и форума к тем, которые у Вас были на phpBB 3.

    Например, у Вас была такая ссылка: building-a-proper-motion-seat-base-for-scn5-s-t2216-20.html
    А после использования данного скрипта ссылка будет выглядеть так: building-a-proper-motion-seat-base-for-scn5s.2216/page-2

    При переходе по старой ссылке, поисковик или пользователь будет перенаправлен на новую ссылку.

    Установка:

    В файле .htaccess находим:
    Код:
    RewriteRule ^.*$ index.php [NC,L]

    И над ним добавляем:
    Код:
    RewriteRule ^(.*)\.html html.php [NC,L]

    Этим мы перенаправим все .html ссылки на файл html.php

    Теперь создадим этот самый файл html.php с таким содержимым:
    Код:
    <?php
    function phpbb_redirect($url)
    {
    
        //exit;
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: ' . $url);
        exit;
    }
    
    function redirect_html()
    {
        if (!isset($_SERVER['REQUEST_URI']))
        {
            return;
        }
        $url = explode('/', $_SERVER['REQUEST_URI']);
        $url = explode('.', array_pop($url));
        if (array_pop($url) != 'html')
        {
            return;
        }
        $url = explode('-', array_pop($url));
    
        $url = array_pop($url);
        $type = substr($url, 0, 1);
    
        /* get the next to last string */
        if (is_numeric($type) == true && $type) { // There is pagination like are-you-a-new-member-introduce-here-t1737-10.html
            $url_page = explode('/', $_SERVER['REQUEST_URI']);
            $url_page = explode('-', array_pop($url_page));
    
            $typestring = array_slice($url_page, count($url_page)-2, 1);
            $typestring_check = $typestring[0];
    
            //echo $url ."<br>";
            //echo $typestring_check . "<br>";
            //echo substr($typestring_check, 0,1) . "<br>";
            $type = substr($typestring_check, 0,1);
            //echo $type . "<br>";
            //echo $type;
            // if last string is int, its paginated
            $id = intval(substr($typestring_check, 1));
            $page = $url/10; //Division durch 10
    
            //echo $page;
            switch ($type)
            {
                case 't':
                    if ($id == 1){
                    phpbb_redirect('index.php?threads/' . $id . '/'); //redirect to first page
                    }else{
                    phpbb_redirect('index.php?threads/' . $id . '/page-' . $page); //redirect to paginated page
                    }
                case 'f':
                    phpbb_redirect('index.php?forums/' . $id . '/');
            }
        } else { // No pagination (Maybe first page of the thread) like like are-you-a-new-member-introduce-here-t1737.html
    
            $type = substr($url, 0, 1);
            $id = substr ($url, 1);
    
            //echo $id . "<br>";
            //echo $type;
            switch ($type)
            {
                case 't':
                    phpbb_redirect('index.php?threads/' . $id . '/');
            
                case 'f':
                    phpbb_redirect('index.php?forums/' . $id . '/');
            }
    
        }
    }
    redirect_html();
    include('index.php');

    Или при желании Вы можете скачать уже готовый файл html.php.
    luckyman нравится это.