- Совместимость с XenForo
- 2.0
- 2.1
- 2.2
Вариант 1 - .htaccess
Для корректной работы .htaccess есть несколько вещей:
После RewriteEngine On добавьте:
Вариант 2 - скрипт
Вы также можете использовать скрипт для перенаправления SMF на XF.
Этот скрипт также обрабатывает перенаправления страниц потоков, которых нет в опции .htaccess!
Для корректной работы скрипта необходимо выполнить несколько действий:
Скачать скрипт и измените его в соответствии с вашими потребностями.
Поместите его в исходное расположение вашего старого форума SMF, перезаписав исходный файл index.php.
Вам нужно будет изменить эти переменные в скрипте:
Примечание 1: Если вы установили Xenforo в подкаталог, вы можете использовать что-то вроде $redir_url = 'https://www.yourdomain.com/subdir';
Примечание 2: Убедитесь, что вы используете одинаковое значение для количества сообщений на странице для обоих форумов.
Итак, если SMF был настроен на 10 сообщений на страницу, вам следует сделать то же самое для Xenforo (Настройка> Параметры> Темы> Обсуждения на странице) и изменить $threads_count на 10. Таким образом вы также сможете корректно перенаправлять страницы темы!
Примеры перенаправлений, которые обрабатывает этот скрипт:
Для корректной работы .htaccess есть несколько вещей:
- SMF 2.0 использовал обычные URL, например "https://www.domain.com/smf/index.php?board=5.0"
- "Использовать полностью понятные URL" в Xenforo включено
- При импорте в Xenforo вы сохраняете идентификаторы
После RewriteEngine On добавьте:
Код:
RewriteCond %{QUERY_STRING} (^|\?|&)board=([0-9]+)\.[0-9]+($|&)
RewriteRule ^index\.php$ /forum/forums/%2/? [R=301,L]
RewriteCond %{QUERY_STRING} (^|\?|&)topic=([0-9]+)\.[0-9]+($|&)
RewriteRule ^index\.php$ /forum/threads/%2/? [R=301,L]
RewriteCond %{QUERY_STRING} (^|\?)topic=([0-9]+).msg([0-9]+)($|&)
RewriteRule ^index\.php$ /forum/threads/%2/#post-%3? [NE,R=301,L]
RewriteCond %{QUERY_STRING} (^|\?)PHPSESSID=(.*);topic=([0-9]+)\.[0-9]+($|&)
RewriteRule ^index\.php$ /forum/threads/%3/? [NE,R=301,L]
Вариант 2 - скрипт
Вы также можете использовать скрипт для перенаправления SMF на XF.
Этот скрипт также обрабатывает перенаправления страниц потоков, которых нет в опции .htaccess!
Для корректной работы скрипта необходимо выполнить несколько действий:
- SMF 2.0 использовал обычные URL, например "https://www.domain.com/smf/index.php?board=5.0"
- "Использовать полностью понятные URL" в Xenforo включено
- При импорте в Xenforo вы сохраняете идентификаторы
- Оба форума установлены в отдельных каталогах (или доменах)
Скачать скрипт и измените его в соответствии с вашими потребностями.
Поместите его в исходное расположение вашего старого форума SMF, перезаписав исходный файл index.php.
Вам нужно будет изменить эти переменные в скрипте:
Код:
// *** Variables ***
$redir_url = 'https://www.yourdomain.com'; // URL of your new forum, without trailing slash
$forums = 'forums'; // Default path to index (only change this if you are using route filters)
$threads = 'threads'; // Default path to topic (only change this if you are using route filters)
$posts = 'posts'; // Default path to posts (only change this if you are using route filters)
$members = 'members'; // Default path to members (only change this if you are using route filters)
$threads_count = 20; // Make sure the number of messages per page is the same for SMF and XenForo.
$mode = 0; // 0 = testing / 1 = temp redirect / 2 = perm redirect
Примечание 1: Если вы установили Xenforo в подкаталог, вы можете использовать что-то вроде $redir_url = 'https://www.yourdomain.com/subdir';
Примечание 2: Убедитесь, что вы используете одинаковое значение для количества сообщений на странице для обоих форумов.
Итак, если SMF был настроен на 10 сообщений на страницу, вам следует сделать то же самое для Xenforo (Настройка> Параметры> Темы> Обсуждения на странице) и изменить $threads_count на 10. Таким образом вы также сможете корректно перенаправлять страницы темы!
Примеры перенаправлений, которые обрабатывает этот скрипт:
- Доски перенаправлений:
https://www.yourdomain.com/smf/index.php?board=5.0 >>> /xenforo/форумы/5/
- Перенаправление определенного сообщения:
https://www.yourdomain.com/smf/index.php?msg=123 >>> /xenforo/сообщений/123/
- Перенаправление определенного сообщения в теме:
https://www.yourdomain.com/smf/index.php?topic=10.msg123 >>> /xenforo/сообщений/123
- Перенаправление на определенную страницу:
https://www.yourdomain.com/smf/index.php?topic=10.110 >>> /xenforo/темы/10/страница-12
- Профили перенаправления:
https://www.yourdomain.com/smf/index.php?action=profile;u=123 >>> /xenforo/участники/123/
- Если ничего не соответствует, он перенаправит на URL вашего форума по умолчанию.