Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Вернуть старые 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

Опубликовано:
  • Автор

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

Опубликовано:

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

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.