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

 

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

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

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

Опубликовано:
есть и такие: ../forum/index.php?/topic/18/page__view__findpost__p__4127

Для таких уже есть по дефолту.

 

Если у Вас не работает, нужно смотреть на форуме, а не гадать, что Вы там делаете.

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

Для таких уже есть по дефолту.

 

Если у Вас не работает, нужно смотреть на форуме, а не гадать, что Вы там делаете.

Вот ссылка на форум: _http://313news.net/forum2/

я в папке /forum2 создал копию форума 3.4.8 и обновил ее до 4.1.3.2

оригинал находится в папке /forum

Все ссылки на новом форуме ведут на старый, поэтому перед их открытием нужно прибавлять 2-ку после /forum (т.е. /forum2)

 

 

Для примера привожу ссылки, которые ведут на стр.404
_http://313news.net/forum2/index.php?/topic/18/page__view__findpost__p__4127
_http://313news.net/forum2/index.php?/topic/5118/page__pid__98945__st__60#entry98945

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

Для примера привожу ссылки, которые ведут на стр.404

Так у вас вообще не работает такой форумат чпу.

313news.net/forum2/topic/18/

 

Стандартный шаблон topic/{#id}-{?} не соответствует формату /topic/18/. Что-бы он поддерживал оба типа нужно изменить на topic/{#id}{?}

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

Так у вас вообще не работает такой форумат чпу.

313news.net/forum2/topic/18/

 

Стандартный шаблон topic/{#id}-{?} не соответствует формату /topic/18/. Что-бы он поддерживал оба типа нужно изменить на topic/{#id}{?}

сделал как Вы написали. Все равно по ссылке 313news.net/forum2/topic/18/ открывает 404 страницу.

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

Что-бы он поддерживал оба типа нужно изменить на topic/{#id}{?}

Нет. Так ссылки будут генерироваться без "-".

 

Открыть \applications\forums\data\furl.json

Найти

 

	    "real": "app=forums&module=forums&controller=topic",

Выше добавить

 

	    "alias": "topic/{#id}/{?}",

 

Очистить кеш. Если используется файловый кеш, удалить файл /datastore/furl_configuration.KEY.php

Но промежуточных редиректов там будет дохрена. Я насчитал аж 3.

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

Сделал. теперь вообще ерунда получается. Кликаю на тему на главной, переходит в совершенно другую тему. Причем переходит только если у темы больше одной страницы. Если тема состоит только из одной страницы, то на открывшейся странице пишет: У вас нет прав для просмотра этого содержимого.

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

1. Старые изменения чпу откатить.

2. Следовать инструкциям из этого поста.

 

На локалхосте тестировал, вроде бы багов небыло. Можно попробовать создать еще одно правило для чпу под старые ссылки, но у меня лично не получилось - редирект вышел кривой.

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

1. Старые изменения чпу откатить.

2. Следовать инструкциям из этого поста.

 

На локалхосте тестировал, вроде бы багов небыло. Можно попробовать создать еще одно правило для чпу под старые ссылки, но у меня лично не получилось - редирект вышел кривой.

сделал как Вы написали. Все равно по ссылке 313news.net/forum2/topic/18/ открывает 404 страницу.

Но эти ссылки теперь прекрасно открываются

_http://313news.net/forum2/index.php?/topic/18/page__view__findpost__p__4127
_http://313news.net/forum2/index.php?/topic/5118/page__pid__98945__st__60#entry98945

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

Но эти ссылки теперь прекрасно открываются

Если работают эти, то тем более должна работать и та. Может очередной глюк, тут уж не знаю.

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

Еще один баг в настройках Friendly URLs - при создание нового правило чпу ему присваивается ключ в массиве - '0'. При редактирование, видимо из-за булево значение false и бага в логике, он не находит должный элемент а создает новый. Таким образом его не удалить, не отредактировать нельзя. Посылаем дружно лучики любви ИПС, я уже мысленно их послал.

 

Кто там говорил что система чпу в IPS 4 лучше чем в тройке? Она не то что хуже, она полное УГ. В тройке хотябы можно было гибко настроить правила чпу за счет регулярных выражений, а здесь два постановочных символа абсолютно без никакой гибкости. Система для блондинок.

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

Может очередной глюк, ту уж не знаю.

Алиас оказывается нужен был без слеша перед {?} из-за того, что по ожидаемой логики он не (.*?) а равен (.+?).

Раз уж IPS-овцы решили сделать постановочными символами регулярное выражение, им явно надо расширить синтаксис, как минимум добавив еще {*}. С этими масками они наступают на те же самые грабли что выражениями для медиатегов в 3x, когда вначале тоже было масками потом нахрен убрали и оставили полноценные регулярные выражения. Ну не хватает одних только двух масок для чпу, либо следует внести два режима конфигурации чпу - режим чайник и продвинутый. Имхо.

 

alias в итоге будет выглядеть подобным образом:

"alias": "topic/{#id}{?}",

+ потребуется немного изменить файл \system\Http\Url.php

 

ТС, будете обновляться, придется сохранить или внести заново изменения в \applications\forums\data\furl.json

И также отредактировать файл \system\Http\Url.php, заменив '(\d+?)' на '(\d+)'

 

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

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

Вы проделали все эти изменения или я сам должен все сделать? Спрашиваю потому, что в файле \system\Http\Url.php есть и '(\d+?)' и '(\d+)' . А также на самом форуме по прежнему не работают ссылки.

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

Не цитируйте большие сообщение целиком или сообщения с кодом. Такую страницу невозможно читать.

 

Я уже изменил и старые ссылки работают.

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

Я уже изменил и старые ссылки работают.

Спасибо Вам за помощь.

Не могли бы Вы написать какие в точности изменения Вы сделали, чтобы я и сам мог их проделать. Дело в том, что форум криво обновился, во многих ссылках присутствуют лишние элементы типа /> или двух ссылок одновременно. Да и новые сообщения уже появились. Хочу заново обновиться.

 

еще у меня в сообщениях присутствуют ссылки с pid к примеру

/forum/index.php?/topic/5118/page__pid__98945__st__60#entry98945

которая как оказалось и на старом форуме (3.4.8) неправильно переходила. И как я понял невозможно произвести изменения одновременно и для pid и для p . Или все-таки можно сделать, внеся изменения из поста #14 ?

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

Все изменения описаны выше.

 

еще у меня в сообщениях присутствуют ссылки с pid к примеру

forum/index.php?/topic/5118/page__pid__98945__st__60#entry98945

которая как оказалось и на старом форуме (3.4.8) неправильно переходила

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

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

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