Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Вернуть старые URL после обновления

Добрый вечер, уважаемые форумчане.

Обновил форум с 2.3.5 до 3.4.2.

В старой версии URL были такие: site.ru/topic23514.html

В новой версии стали: showtopic=23514

Можно каким либо образом вернуть старые URL, либо как сделать доступность страниц по старым URL. Надеюсь на вашу помощь.

Рекомендованные сообщения

Обратите внимание

"Board url", указанный вами в профиле, некорректен, либо недоступен на данный момент. Пожауйста, заполните его, потому что он скорее всего потребуется при диагностике вашей проблемы.

  • Автор

@siv1987, спасибо большое. Осталось решить вопрос со страничками.

Было: topic16785s2461.html (где s2461 как я понял сообщение)

Сейчас: topic16785.html?page=3

Такое вообще реально сделать?

Сейчас: topic16785.html?page=3

Вы неправильно переписали шаблон.

Ссылка должна выглядеть подобным образом: topic16785.html/page-3

 

где s2461 как я понял сообщение

s - страница.

 

Можно или через rewrite на промежуточный скрипт, который составит правильный урл и отправит редирект браузеру, либо сделать через двойной редирект - делается редирект на topic16785.html/page__st__2461, а форум уже редирекнет на topic16785.html/page-3.

  • Автор

То есть такой URL у страниц сделать не получится? (topic16785s2461.html)

Первый вариант:

 

В 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 );
}

?>

Второй вариант:

 

Делам редирект на /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]

То есть такой URL у страниц сделать не получится? (topic16785s2461.html)

Нет, такой формат с номером страницы не получиться.

  • Автор

@siv1987, премного Вам благодарен, сейчас буду пробовать.

  • Автор
Сейчас: 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' ) ) ) ),

'#showtopic=(.+?)(&|$)#i', 'topic$1.html$2'

Заменить на

 

'#showtopic=(.+?)(\#|&|$)#i', 'topic$1.html$2'

 

Потом обновите кеш ЧПУ в админцентре.

  • Автор

Теперь имеем: topic754.html?page=3

В поисковиках: topic754.html/page-164

 

Естественно с поисковиков Not Found. Буду Вам очень признателен за помощь..

Изменено пользователем Metroman

Вы должны иметь topic754.html/page-3

  • Автор

Вот я хотел бы узнать как мне такого добиться? Извиняюсь за назойливость..

Вот я хотел бы узнать как мне такого добиться? Извиняюсь за назойливость..

Ну так, правку делали? Кеш чпу обновили?

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.