Переезд с phpbb3

kolala

Проверенные
Сообщения
256
Реакции
34
Баллы
8,125
Собираюсь переезжать с phpbb3. почти со всем разобрался.

Остались некоторые моменты, которые касаются редиректа старых ссылок.

Я так понимаю есть разные способы.

1 способ этот: (пробовал - у меня почему то не заработал)

2 способ: (не пробовал)

3 способ сейчас тестирую у себя:

код в htacses:

Код:
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^[0-9]+(\.[0-9]+){3} [OR]
        RewriteCond %{HTTP_HOST} ^mail [OR]
        RewriteCond %{HTTP_HOST} ^komikanimasi.web.id
        #RewriteRule (.*) http://www.komikanimasi.web.id/forum/$1 [R=301,L]
RewriteRule (.*) http://www.forum.komikanimasi.web.id/$1 [R=301,L]
        #RewriteRule ^userpix/(.*) http://cdn.z22se.com/userpix/$1 [QSA,L]
        #      If you are having problems with the rewrite rules, remove the "#" from the
        #      line that begins "RewriteBase" below. You will also have to change the path
        #      of the rewrite to reflect the path to your XenForo installation.
        #RewriteBase /forum/
        #      This line may be needed to enable WebDAV editing with PHP as a CGI.
        #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
   
        RewriteCond %{QUERY_STRING} (^|&)t=([0-9]+)(&|$) [NC]
        RewriteRule ^viewtopic\.php$ /threads/%2? [L,R=301,NC]
        RewriteCond %{QUERY_STRING} f=(\d+)$ [NC]
        RewriteRule ^(viewforum\.php|viewtopic\.php)$ /forums/%1? [L,R=301,NC]
        RewriteCond %{QUERY_STRING} (^|&)p=([0-9]+)(&|$) [NC]
        RewriteRule ^viewtopic\.php$ /posts/%2? [L,R=301,NC]
        RewriteCond %{REQUEST_FILENAME} -f [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
        RewriteRule ^.*$ index.php [NC,L]
</IfModule>

код взял из одной переписке на форуме ксена:

komikanimasi.web.id



это строки первого хозяина этого кода.
Помогите, если знаете - что это такое и чем эти строки нужно заменить
 
Меня напрягает phpbb в этом смысле. Я тебя обрадую: я раза 4 все по новой перезаливал)))

vadik21, ты сконвертируй форум в ксюшу и по новой заливай вложения в каждое сообщение

Один раз я два дня потратил чтоб все перезалить... Побилось все что только возможно. Я даже точно не знаю на что грешить. По моему мнению это панель управления (бекап) и сам движек phpbb
 
mygedz, К сожалению это просто невозможно, 115к сообщений=(

Может вложения сначала на phpbb чем то перестроить, обработать, подчистить?

А может я не так скачивал и закачивал вложения? Типы передачи ASCII, двоичный, авто? + в настройках filezilla - скачивать файлы без разширения как ASCII... Что это?
 
У меня 2217 сообщений. Пришлось по новой заливать.
Дело не в скачке. Я сам толком так и не понял. Вот пример например: я всегда храню много бекапов. Так вот например один из бекапов нормальный, а другие все проблемные, имею ввиду проблему с вложениями. Итог: или это проблема панели управления, через которую делался бекап или еще что-то. Скажу даже больше: я делал бекап, просто скачивая через FTP файлы. Та же фигня).
Я очень хорошо отношусь к Бегету, но такая проблема с движкгм phpbb есть у них. У меня даже возникало подозрение, что это делается специально, чтоб пользователи не уходили от них.

Знаешь, что узнай: многие хостинги делают сами бекапы. Так вот Бегет такое делает. Они через свой бекап нормально восстанавливали форум когда то.

Нашел решение вопроса:
Если вы используете Total Commander, то продолжайте, он заливает вроде правильно.
Если же вы используете Filezilla, то перед тем как скачивать файлы со старого сервера, или заливать на новый, выберите в меню "Передача" - "Режим передачи" - "Двоичный режим"

После передачи файлов, не забудьте сравнить отображаемый клиентом размер файлов на сервере и у вас в локальной папке, он должен быть одинаковым!
 
"Передача" - "Режим передачи" - "Двоичный режим"
Вот это вообще решает практически все проблемы с целостностью сливания\заливки файлов. Дельный совет +1
 
Вот это вообще решает практически все проблемы с целостностью сливания\заливки файлов. Дельный совет +1
но проблема с битыми вложениями у меня возникала только на phpbb. На других движках - xenforo, ipb, булка, wbb таких проблем не видел.
 
но проблема с битыми вложениями у меня возникала только на phpbb. На других движках - xenforo, ipb, булка, wbb таких проблем не видел.
Мы, вроде в ноябре как раз переехали на булки, после ее непонятного падения, она просто перестала работать, причем об этом я хозяина сайта я предупреждал еще в сентябре, ибо булка по какой то причине коцала БД еще с весны. Видимо тот кто ставил накосячил, разбираться не стал. Ксеня с булки перетянула все данные ни странно адекватно и без проблем, нарадоваться не можем теперь работе ксени.
Как раз в октябре-ноябре тут активизировал свою дейстельность, докапывался до Hope через топик хД
 
Потому и съезжаем!
Ну вот скажу, я с phpbbx конвертировал и в xenforo, и ipb, и wbb. Самая легкая конвертация это в xenforo. Не требуется никаких дополнительных подготовок и тому подобное. И после конвертации тоже нет проблем. Точнее есть одна: этов вложения изображения не отображаются в постах, а отображаются как вложния.
Например в ipb, надо еще перед конвертацией проводить некоторую подготовку. Потом после конвертации возможны проблемы с паролями пользователей ну и так по мелочи.

У меня лишь одна проблемка: нет стиля подходящего. Так бы давно переехал.
 
Последнее редактирование:
Господа переехвашие, как с редиректом ссылок на атачи решили вопрос?
Или не решали, хай поисковики сами все переиндексируют и пользователи ссылки обновляют? :-)
У меня просто 20К проиндексированных вложений! Ссылок жалко, а как сделать редирект пока не понятно. Поделитесь плс, кто как данную проблему решил?
 
Переехал окончательно, форум пока в папке. Если потом перенесу на уровень выше на основной домен, все останется работоспособным? И еще вопрос - обязательно ли делать редиректы старых тем на новые? Просто муторно, вручную. Для меня индексация не так важна, а через месяц-другой все само переиндексируется. Думаю пока что только редиректы внешних естественных траффиковых ссылок сделать на соответствующие темы.
 
Если потом перенесу на уровень выше на основной домен, все останется работоспособным?
Не совсем ясен вопрос...

И еще вопрос - обязательно ли делать редиректы старых тем на новые?
Нет конечно. По желанию.
 
Не совсем ясен вопрос...
Сейчас форум тестируется по ссылке: домен/форум. Если я перенесу все файлы форума из поддиректории "форум" в корневую директорию "домен", он продолжит работать в штатном режиме? Или что-то придется менять?
 
Придётся поменять адрес в админке... А так наверное больше ничего.
Переехал. И правда, пришлось только перебить пару адресов в админке + исправить адрес лого. Старый движок phpbb затер, папку с ксеней копирнул в корень вместо него.
 
  • Мне нравится
Реакции: Hope
Переехал сегодня с phpbb3 на ксенфоро. Форум был на основном домене с 2004 года, 300 000+ постов и несколько тысяч пользователей. На ксенфоро переместил его в папку forum/, так каа на первом уровне будет WP, с которым буду делать интеграцию, но это другой вопрос.
сейчас стоит острая проблема с редиректами, в индексе яндекса 11000 страниц, а загружено 950 000+.
поскольку профессионально занимаюсь CEO, то хочется поскорее решить вопрос с урлами.
 
Последнее редактирование модератором:
Последнее редактирование:
Да всё перенеслось просто, легко и без косяков. Странно даже)))

Скриптами перенаправил редиректы. Единственное что не получилось, это сделать редиректы на вложения.[DOUBLEPOST=1384088981,1384077267][/DOUBLEPOST]подскажите как в в хатеаксес сделать такой редирект

сайт.ru/download/file.php?id=335

на

сайт.ru/attachments/335/

вроде не сложно должно быть
подскажите, как вы в итоге решили вопрос с редиректами на пагинацию страниц?
и каким скриптом все-таки воспользовались?

Ну путь поменяете в скрипте в случае чего. :-)
я поместил скрипт в папку форума и все норм. спасибо.
но теперь на главном адресе хочу запустить портал. Подскажите, как изменить скрипт, чтобы он отрабатывал для папки форум, с учетом что он будет лежать в корне основного домена?
вот скрипт изначальный,чтобы далеко не ходить:
PHP:
<?php
/**
* phpBB redirection script for XenForo
*
* by Simon Tunnat
*/

function redirect($url) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: ' . $url);
    exit;
}

$type = null;
$page = null;
$id = null;

if ( isset($_SERVER['REQUEST_URI']) ) {
    $url = explode('/', $_SERVER['REQUEST_URI']);
    $url = explode('.', array_pop($url));

    if( $url[0] == 'viewforum' && isset($_GET['f']) ) {
        $type = 'forums';
        $id = intval($_GET['f']);
    } elseif( $url[0] == 'viewtopic' ) {
        if( isset($_GET['p']) ) {
       $type = 'posts';
       $id = intval($_GET['p']);
        } elseif( isset($_GET['t']) ) {
           $type = 'threads';
       $id = intval($_GET['t']);
        }
    }

    if( isset($_GET['start']) ) {
        $postsPerPage = 10;
        $page = intval($_GET['start']) / $postsPerPage;
    }
}

if( $type !== null && $id !== null && $id !== 0 ) {
    if( $page !== null ) {
        redirect('index.php?' . $type  . '/' . $id . '/page-' . $page);
    } else {
        redirect('index.php?' . $type  . '/' . $id . '/');
    }
} else {
    redirect('index.php');
}
п.с bbcode хайда не нашел, чтобы скрыть.

методом эксперимента получился правильный скрипт, который перенаправляет в папку forum/
PHP:
<?php
/**
* phpBB redirection script for XenForo
*
* by Simon Tunnat
*/

function redirect($url) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: ' . $url);
    exit;
}

$type = null;
$page = null;
$id = null;

if ( isset($_SERVER['REQUEST_URI']) ) {
    $url = explode('/', $_SERVER['REQUEST_URI']);
    $url = explode('.', array_pop($url));

    if( $url[0] == 'viewforum' && isset($_GET['f']) ) {
        $type = 'forums';
        $id = intval($_GET['f']);
    } elseif( $url[0] == 'viewtopic' ) {
        if( isset($_GET['p']) ) {
       $type = 'posts';
       $id = intval($_GET['p']);
        } elseif( isset($_GET['t']) ) {
           $type = 'threads';
       $id = intval($_GET['t']);
        }
    }

    if( isset($_GET['start']) ) {
        $postsPerPage = 10;
        $page = intval($_GET['start']) / $postsPerPage;
    }
}

if( $type !== null && $id !== null && $id !== 0 ) {
    if( $page !== null ) {
        redirect('forum/index.php?' . $type  . '/' . $id . '/page-' . $page);
    } else {
        redirect('forum/index.php?' . $type  . '/' . $id . '/');
    }
} else {
    redirect('index.php');
}

а вот вариант с отсечением индексной страницы(избавляемся от лишнего редиректа)
он более правильный в плане SEO
PHP:
<?php
/**
* phpBB redirection script for XenForo
*
* by Simon Tunnat
*/

function redirect($url) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: ' . $url);
    exit;
}

$type = null;
$page = null;
$id = null;

if ( isset($_SERVER['REQUEST_URI']) ) {
    $url = explode('/', $_SERVER['REQUEST_URI']);
    $url = explode('.', array_pop($url));

    if( $url[0] == 'viewforum' && isset($_GET['f']) ) {
        $type = 'forums';
        $id = intval($_GET['f']);
    } elseif( $url[0] == 'viewtopic' ) {
        if( isset($_GET['p']) ) {
       $type = 'posts';
       $id = intval($_GET['p']);
        } elseif( isset($_GET['t']) ) {
           $type = 'threads';
       $id = intval($_GET['t']);
        }
    } 

    if( isset($_GET['start']) ) {
        $postsPerPage = 10;
        $page = intval($_GET['start']) / $postsPerPage;
    }
}

if( $type !== null && $id !== null && $id !== 0 ) {
    if( $page !== null ) {
        redirect('forum/' . $type  . '/' . $id . '/page-' . $page);
    } else {
        redirect('forum/' . $type  . '/' . $id . '/');
    }
} else {
    redirect('/');
}
ну и соответственно, изначальный вариант для корневой папки, также с отсечением лишнего редиректа(не проверял его, так как негде)
PHP:
<?php
/**
* phpBB redirection script for XenForo
*
* by Simon Tunnat
*/

function redirect($url) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: ' . $url);
    exit;
}

$type = null;
$page = null;
$id = null;

if ( isset($_SERVER['REQUEST_URI']) ) {
    $url = explode('/', $_SERVER['REQUEST_URI']);
    $url = explode('.', array_pop($url));

    if( $url[0] == 'viewforum' && isset($_GET['f']) ) {
        $type = 'forums';
        $id = intval($_GET['f']);
    } elseif( $url[0] == 'viewtopic' ) {
        if( isset($_GET['p']) ) {
       $type = 'posts';
       $id = intval($_GET['p']);
        } elseif( isset($_GET['t']) ) {
           $type = 'threads';
       $id = intval($_GET['t']);
        }
    } 

    if( isset($_GET['start']) ) {
        $postsPerPage = 10;
        $page = intval($_GET['start']) / $postsPerPage;
    }
}

if( $type !== null && $id !== null && $id !== 0 ) {
    if( $page !== null ) {
        redirect('/' . $type  . '/' . $id . '/page-' . $page);
    } else {
        redirect('/' . $type  . '/' . $id . '/');
    }
} else {
    redirect('/');
}
 
Последнее редактирование модератором:
в коде всё верно! - он делает то, что должен.

Дело в том, что в пхпбб структура урл страниц рассположена таким образом, что

viewforum.php?f=X8&start=10 - это не ПЕРВАЯ СТАНИЦА!!! - это вторая. А скрипт её выдаёт за первую, ну типа

start=10
- page-1
start=20 - page-2
start=30 - page-3


думаю, логика скрипта понятна

а должно быть

start=10 - page-2
start=20 - page-3
start=30 - page-3


то есть плюс 1

спасибо за помощь, но вот как бы в этом коде сделать правильно.

Код:
<?php
/**
* phpBB redirection script for XenForo
*
* by Simon Tunnat
*/

function redirect($url) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: ' . $url);
    exit;
}

$type = null;
$page = null;
$id = null;

if ( isset($_SERVER['REQUEST_URI']) ) {
    $url = explode('/', $_SERVER['REQUEST_URI']);
    $url = explode('.', array_pop($url));

    if( $url[0] == 'viewforum' && isset($_GET['f']) ) {
        $type = 'forums';
        $id = intval($_GET['f']);
    } elseif( $url[0] == 'viewtopic' ) {
        if( isset($_GET['p']) ) {
        $type = 'posts';
        $id = intval($_GET['p']);
        } elseif( isset($_GET['t']) ) {
            $type = 'threads';
        $id = intval($_GET['t']);
        }
    }

    if( isset($_GET['start']) ) {
        $postsPerPage = 10;
        $page = intval($_GET['start']) / $postsPerPage;
    }
}

if( $type !== null && $id !== null && $id !== 0 ) {
    if( $page !== null ) {
        redirect('index.php?' . $type  . '/' . $id . '/page-' . $page);
    } else {
        redirect('index.php?' . $type  . '/' . $id . '/');
    }
} else {
    redirect('index.php');
}


я та поимаю вот эта часть отвечает за нужную мне функцию



как сделать правильно

У меня заработало вот так:
Код:
<?php
/**
* phpBB redirection script for XenForo
*
* by Simon Tunnat
*/

function redirect($url) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: ' . $url);
    exit;
}

$type = null;
$page = null;
$id = null;

if ( isset($_SERVER['REQUEST_URI']) ) {
    $url = explode('/', $_SERVER['REQUEST_URI']);
    $url = explode('.', array_pop($url));

    if( $url[0] == 'viewforum' && isset($_GET['f']) ) {
        $type = 'forums';
        $id = intval($_GET['f']);
    } elseif( $url[0] == 'viewtopic' ) {
        if( isset($_GET['p']) ) {
       $type = 'posts';
       $id = intval($_GET['p']);
        } elseif( isset($_GET['t']) ) {
           $type = 'threads';
       $id = intval($_GET['t']);
        }
    }

    if( isset($_GET['start']) ) {
        $postsPerPage = 25;  // количество страниц на phpBB
        $page = intval($_GET['start']) / $postsPerPage; // получаем номер страницы на xenforo
    }
}

if( $type !== null && $id !== null && $id !== 0 ) {
    if( $page !== null ) {
        redirect('index.php?' . $type  . '/' . $id . '/page-' . ++$page); //++ прибавляют 1 к результату
    } else {
        redirect('index.php?' . $type  . '/' . $id . '/');
    }
} else {
    redirect('index.php');
}

Добавил два плюса перед $page

Может кто нибудь подскажет еще, как в этот скрипт запихнуть чтобы он номера постов редиректил с phpBB, т.к. на данный момент получается все правильно и раздел нужный и тема и страница, но вместо #post-[номер поста], остается #p[номер поста]

или может как то через фильтр роутинга можно эту проблему решить?
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу