Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Metroman

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

?>

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

 

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

@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'

 

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

Поделиться сообщением


Ссылка на сообщение
04/04/13 18:53 (изменено)

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×
×
  • Создать...