Переезд с 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



это строки первого хозяина этого кода.
Помогите, если знаете - что это такое и чем эти строки нужно заменить
 
Зачем что-то менять? Если только заменить домен на свой...

дело в том, что я хочу понять что оно делает, что бы случайно не нахомутать. Может оно мне не нужно.)))

этот код делает, такой редирект, который мне необходим:

viewtopic.php?f=9&t=2413 меняет на threads/text-zagolovka.1463/

но может это только часть того что делает этот код, - я хочу максимально всё упростить, что бы не грузить хтаксес[DOUBLEPOST=1382695686,1382541419][/DOUBLEPOST]значит поменял содержимое на такое:

RewriteCond %{QUERY_STRING} (^|&)t=([0-9]:-)(&|$) [NC]
RewriteRule ^viewtopic\.php$ /threads/%2? [L,R=301,NC]
RewriteCond %{QUERY_STRING} (^|&)p=([0-9]:-)(&|$) [NC]
RewriteRule ^viewtopic\.php$ /posts/%2? [L,R=301,NC]
RewriteCond %{QUERY_STRING} f=(\d:-)$ [NC]
RewriteRule ^(viewforum\.php|viewtopic\.php)$ /forums/%1? [L,R=301,NC]


Сейчас оно делает следующее:

перенаправляет тему на тему
перенаправляет форум на форум
перенаправляет конкретный пост на конкретный пост

Вопрос:
в пхпбб тема делится на страницы - как перенаправить конкретную страницу темы на конкретную страницу? То есть например перенаправить вот это:

viewtopic.php?f=3&t=1278&start=10

вот сюда

threads/название темы.1278/page-2

???????

Если учесть что на каждой странице темы ровно 10 ответов
 
да есть, и файл хтаксес и этот скрипт дают один результат.

Есть скрипт, который делает то что нужно, но в том случае если на пхпбб использовались сео адреса.




building-a-proper-motion-seat-base-for-scn5-s-t2216-20.html
which is the page 3 in your phpbb3 forum
must be translated to a XenForo URL like:
building-a-proper-motion-seat-base-for-scn5s.2216/page-2
Notice, that the XenForo link is page 2;)

Otherwise Google follows the redirection but does not find the expected content on the site because the pagination would be wrong.

здесь эта проблема решена, но вот как её решить в моём случае. Автор пишет, что просто, нужно немного подправить скрипт, который во вложении. Только я в этом не шарю
 

Вложения

  • phpbb.php
    1.1 KB · Просмотры: 6

я этот скрипт и использую - скачал у вас, но он делает всё что нужно, !!!кроме!!!

viewtopic.php?f=3&t=1278&start=10 ==> threads/название темы.1278/page-2


8&start=10 в пхпбб это page-2 в ксенфоро
8&start=20 в пхпбб это page-3 в ксенфоро



то есть всё перенаправляет, осталось только перенаправить страницу темы на страницу темы.

А в моде для сео адресов, тоже єтого не было, но один умелец дописал пару строк и всё заработало. Но увы у меня не сео адреса.
 
Ну вообще в описании к скрипту, который я дал выше, написано, что он делает именно так, как Вам нужно. Не знаю тогда...

в описании написано - вот что он делает. (и он, дейчтвительно, это делает)

"/viewforum.php?f=X" будут перенаправлены в "/index.php/forums/X/" и
"/viewtopic.php?t=X" будут перенаправлены в "/index.php/threads/X/" , и
"/viewtopic.php?p=X" будут перенаправлены в "/index.php/posts/X/".

а нужно добавить ещё одну фичу:


"/viewtopic.php?p=X" будут перенаправлены в "/index.php/posts/X/".

viewtopic.php?t=2374&start=10

"/viewforum.php?f=X8&start=10" нужно перенаправить сюда "/index.php/threads/X/page-2"[DOUBLEPOST=1382699749,1382698908][/DOUBLEPOST]


___________________

Поковырялся и обнаружил следующее - ДА - он действительно делает перенаправление на страницу темы, но делает это не правильно.

start=10 в пхпбб, это страница номер два (page-2), а скрипт присваивает ей статус страницы номер один (page-1). Соответственно сбивается весь порядок
 
Попробуйте в .htaccess добавить:
Код:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.site\.ru
RewriteRule (.*) http://www.site.ru/$1 [L,R=301]
RewriteCond %{QUERY_STRING} (^|&)t=([0-9]+)(&|$) [NC]
RewriteRule ^viewtopic\.php$ http://www.site.ru/threads/%2? [L,R=301,NC]
RewriteCond %{QUERY_STRING} f=(\d+)$ [NC]
RewriteRule ^viewforum\.php$ http://www.site.ru/forums/%1? [L,R=301,NC]
Ну это просто перенаправление с неверных урлов будет...
 
спасибо за помощь, но вот как бы в этом коде сделать правильно.

Код:
<?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');
}


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

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 . '/');

как сделать правильно
 
Значит в коде всё верно. Я не знаю, почему у Вас ничего не получается...

в коде всё верно! - он делает то, что должен.

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

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

 
в коде всё верно! - он делает то, что должен.

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

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
ТС получилось доделать переезд ? Думаю тоже просто с phbb перейти на xenforo и не знаю стоит заморачиваться или нет. А может поставить на чистую и похерить всю информацию старую, но ее хоть и не так много как у некоторых, но жалко ее. Короче дилема..
 
ТС получилось доделать переезд ? Думаю тоже просто с phbb перейти на xenforo и не знаю стоит заморачиваться или нет. А может поставить на чистую и похерить всю информацию старую, но ее хоть и не так много как у некоторых, но жалко ее. Короче дилема..
врятли админы встроили бы функционал, который не пашет.

Я правда с булки переносил, но нажав пару кнопочек всё перенеслось+ вроде базу твою не задевает и не удаляет, попробуй на тестовом хосте перенести(занимает не много времени)
 
да надо попробовать, а тестовый хост это что имеется в виду? на локалке ?
как захочешь, можешь просто где твой сайт стоит просто папку отдельную создай и базу для ксени =)
 
  • Мне нравится
Реакции: bm2k
ТС получилось доделать переезд ? Думаю тоже просто с phbb перейти на xenforo и не знаю стоит заморачиваться или нет. А может поставить на чистую и похерить всю информацию старую, но ее хоть и не так много как у некоторых, но жалко ее. Короче дилема..


Да всё перенеслось просто, легко и без косяков. Странно даже)))

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

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

на

сайт.ru/attachments/335/

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