Опубликовано: 3 апреля 201312 г Добрый вечер, уважаемые форумчане.Обновил форум с 2.3.5 до 3.4.2. В старой версии URL были такие: site.ru/topic23514.htmlВ новой версии стали: showtopic=23514Можно каким либо образом вернуть старые URL, либо как сделать доступность страниц по старым URL. Надеюсь на вашу помощь.
Опубликовано: 3 апреля 201312 г Обратите внимание "Board url", указанный вами в профиле, некорректен, либо недоступен на данный момент. Пожауйста, заполните его, потому что он скорее всего потребуется при диагностике вашей проблемы.
Опубликовано: 3 апреля 201312 г Включить ЧПУ и переписать его шаблон http://ipbskins.ru/forum/topic5970.html
Опубликовано: 4 апреля 201312 г Автор @siv1987, спасибо большое. Осталось решить вопрос со страничками.Было: topic16785s2461.html (где s2461 как я понял сообщение)Сейчас: topic16785.html?page=3Такое вообще реально сделать?
Опубликовано: 4 апреля 201312 г Сейчас: topic16785.html?page=3Вы неправильно переписали шаблон.Ссылка должна выглядеть подобным образом: topic16785.html/page-3 где s2461 как я понял сообщениеs - страница. Можно или через rewrite на промежуточный скрипт, который составит правильный урл и отправит редирект браузеру, либо сделать через двойной редирект - делается редирект на topic16785.html/page__st__2461, а форум уже редирекнет на topic16785.html/page-3.
Опубликовано: 4 апреля 201312 г Автор То есть такой URL у страниц сделать не получится? (topic16785s2461.html)
Опубликовано: 4 апреля 201312 г Первый вариант: В htaccess после RewriteEngine On добавляем RewriteRule ^topic\d+s\d+\.html redir.php [L] В корне создаем файл redir.php со следующим содержанием <?php $perPage = 20; //число сообщений на странице $board_url = 'http://'.$_SERVER['HTTP_HOST'].'/'; if( preg_match( '/(topic\d+)s(\d+)\.html/', $_SERVER['REQUEST_URI'], $out ) ) { $topic = $out[1]; $st = $out[2]; $url = $board_url.$topic.'.html'; if( $st >= $perPage ) { $pag = intval( $st / $perPage ) + 1; $url .= '/page-'.$pag; } header( 'Location: '.$url, true, 301 ); } else { header( 'Location: '.$board_url, true, 301 ); } ?>
Опубликовано: 4 апреля 201312 г Второй вариант: Делам редирект на /topic%id%.html/page__st__%st%После чего форум сам сделает редирект на новый вид /topic%id%.html/page-%page% Добавить после RewriteEngine On RewriteRule ^(topic\d+)s(\d+)\.html /$1.html/page__st__$2 [R=301,L]
Опубликовано: 4 апреля 201312 г То есть такой URL у страниц сделать не получится? (topic16785s2461.html)Нет, такой формат с номером страницы не получиться.
Опубликовано: 4 апреля 201312 г Автор Сейчас: topic16785.html?page=3Вы неправильно переписали шаблон.Ссылка должна выглядеть подобным образом: topic16785.html/page-3Можете указать где я ошибся? 'showtopic' => array( 'app' => 'forums', 'allowRedirect' => 1, 'out' => array( '#showtopic=(.+?)(&|$)#i', 'topic$1.html$2' ), 'in' => array( 'regex' => "#/topic(\d+?).html#i", 'matches' => array( array( 'showtopic', '$1' ) ) ) ),
Опубликовано: 4 апреля 201312 г '#showtopic=(.+?)(&|$)#i', 'topic$1.html$2'Заменить на '#showtopic=(.+?)(\#|&|$)#i', 'topic$1.html$2' Потом обновите кеш ЧПУ в админцентре.
Опубликовано: 4 апреля 201312 г Автор Теперь имеем: topic754.html?page=3В поисковиках: topic754.html/page-164 Естественно с поисковиков Not Found. Буду Вам очень признателен за помощь.. Изменено 4 апреля 201312 г пользователем Metroman
Опубликовано: 4 апреля 201312 г Автор Вот я хотел бы узнать как мне такого добиться? Извиняюсь за назойливость..
Опубликовано: 4 апреля 201312 г Вот я хотел бы узнать как мне такого добиться? Извиняюсь за назойливость..Ну так, правку делали? Кеш чпу обновили?
Добрый вечер, уважаемые форумчане.
Обновил форум с 2.3.5 до 3.4.2.
В старой версии URL были такие: site.ru/topic23514.html
В новой версии стали: showtopic=23514
Можно каким либо образом вернуть старые URL, либо как сделать доступность страниц по старым URL. Надеюсь на вашу помощь.