Вариант 1 - .htaccess
Для корректной работы .htaccess есть несколько вещей:
Откройте ваш файл .htaccess.
После 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. Таким образом вы также сможете корректно перенаправлять страницы темы!
Примеры перенаправлений, которые обрабатывает этот скрипт: