Перейти к публикации
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.

Как изменить чпу в IPB 4?

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

Здравствуйте. Обновил форум с 3.4.8 до 4.1.3.2

В админке - Расширенные настройки - ЧПУ изменил вид:

/forum/id-?? на /forum/id

/topic/id-?? на /topic/id

т.е. открыл ссылки для редактирования и в forum/{#id}-{?} и topic/{#id}-{?} удалил -{?}

 

теперь у меня ссылки на форумы и темы имеют вид:

/forum/100/

/topic/100/

 

но есть проблема, которую я не могу решить, так как нет ее ссылки в Расширенные настройки - ЧПУ

это ссылки на другие сообщения форума, которые пользователи оставляли в своих сообщениях. К примеру у меня в одном из сообщений есть ссылка на другое сообщение вида: /forum/topic/1034/?p=46651 при клике на который она переходит по ссылке и преобразуется в /forum/topic/1034/?comment=46651 . Таким образом я попадаю на первую страницу темы, а не на нужное сообщение (т.е. ссылка срабатывает до ?comment=46651).

/forum/topic/1034/?comment=46651 - ссылка получается такой

/forum/topic/1034/#comment-46651 - но должна быть такой

как сделать, чтобы ?comment= преобразовывалось в #comment-

 

в Расширенные настройки - ЧПУ в самом верху есть Создать. Там наверное можно создать нужную мне ссылку, но я не знаю как.

Помогите кто знает.

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

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

Правильно переходит. Pid этого сообщения из другой темы, поэтому редирект происходит на новую тему.

При клике на эту ссылку forum/index.php?/topic/5118/page__pid__98945__st__60#entry98945 (правильно) переходит на первую страницу нужной темы, но через секунду происходит редирект и открывается страница на которой находилась сама ссылка. URL становиться такой: forum/topic/5890/#entry98945 и переход происходит на сообщение, которое нахожиться на 2 сообщения выше того сообщения в котором находится ссылка (по которой мы кликали).

так и в старой версии 3.4.8 также и в новой версии 4.1

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

так и в старой версии 3.4.8 также и в новой версии 4.1

http://313news.net/forum2/index.php?/topic/5118/page__pid__98945__st__60#entry98945

 

Это сообщение было перемещено в другую тему и не относится к теме к которой прикреплена ссылка. Это не показатель работы, потому что ссылка изначально кривая.

  • 4 года спустя...
Опубликовано:

Тоже столкнулся с чпу...

в админке перешел на вид тем и топиков вот такой, как был раньше, до обновления:

forum/{#id}

topic/{#id}

ссылки с других сайтов работают.

но!

если в теме всего одна страница, то переход на последнее сообщение вида

/forum/topic/19413/?tab=comments#comment-214116 загружется нормально

а если несколько будет страниц, то получится ссылка с /page/xxx/ и уже будет too many redirects

/forum/topic/5413/page/2/?tab=comments#comment-214094

 

три дня уже бьюсь, на переходить на обычный вид ссылок и терять все старые ссылки очень не хочется.

Прошу помощи или подсказки)

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

system/Http/Url/Friendly.php

				$def = static::getFurlDefinitionFromPath( $this->getFriendlyComponent() );

заменить на 

				$def = static::getFurlDefinitionFromPath( preg_replace( "/\/" . preg_quote( $param, '/' ) . "\/\d+?/", '', $this->getFriendlyComponent() ) );

 

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

Супер! Спасибо! Чем обязан?) Я столько мучился...

Опубликовано:
22 часа назад, Icechieff сказал:

три дня уже бьюсь, на переходить на обычный вид ссылок и терять все старые ссылки очень не хочется.

Как вариант - на старые ссылки можно поставить редирект и ничего не потеряете.

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

в .htaccess?

сейчас вот заметил, что кто-то стучался в /forum/topic/5498/page-1 и получил отлуп

а вот если б вместо - был / сработало бы ... /forum/topic/5498/page/1 пытался сделать через

RewriteRule (.*)/page/([0-9]+)$ $1page/$2 [QSA]

что-то не работает, ищу еще варианты

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

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

Еще актуально, перепробовал кучу вариантов, без толку...

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

Так регулярка не совсем верно составлена. Вы ее написали под конечный результат.

RewriteRule ^(.*)/page-([0-9]+)$ /$1/page/$2 [R=301,L]

Добавить после RewriteEngine

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

Эффект есть) page-3 в page/3 переделывает)

но ссылка из нужной  /forum/topic/5498/page/1

превращается в /topic/5498/page/1

 

p.s. методом тыка пробовал

RewriteRule ^(.*)/(.*)/page-([0-9]+)$ /$1/page/$2 [R=301,L]
RewriteRule ^(.*)/page-([0-9]+)$ /$1/forum/page/$2 [R=301,L]

не прокатило

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

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

может так?

RewriteRule ^(.*)/page-([0-9]+)$ /forum/$1/page/$2 [R=301,L]
Опубликовано:

Попробуйте так. Ну вообще пример который я привел должен быть рабочим если его поместить в той же папке где находится форум

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

Сейчас на странице 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.