Установка IPS в корень или в /forum?
#17
Отправлено 22 Февраль 2019 - 22:31
Цитата
Надо смотреть как генерируется ссылки на форумы и темы. Вот как раз изменить его может быть проблематичным, если это название самого приложения forums.
Если для ссылок тем и форумов оно не добавляется, значит можно отредактировать шаблон чпу ссылок и добавить вначале нуный шаблон.
Честно говоря уже третий день пытаюсь вникнуть как сделать лучше - голова квадратная... Наверное необходимость как раз в том, что если допустим я не заморачиваюсь с Pages, то сейчас у меня IPS установлен в папку /forum и из коробки все редиректы работают автоматически, то есть мне больше делать ничего не надо. Но поскольку я захотел сделать Pages в корне сайта (вывод форумных данных), а так сделать можно только если перенести IPS в корень, назначить его приложением по умолчанию и, соответственно движок сам назначает форуму адрес /forums, то с этим надо что-то сделать. Другой вариант, если я правильно понимаю, - устанавливаю сразу Suit в корень, Pages у меня по умолчанию выводятся в site.com/, а форум у меня выводится в site.com/forums, но при этом редиректы из коробки вообще не работают, и их все полностью нужно писать самому, чего я, к сожалению, не умею. Да и это наверное не просто для всех категорий урлов написать.
#18
Отправлено 22 Февраль 2019 - 22:50
Старые адреса имеют формат /forum/showthread.php?t=4906646. Соответственно редирект для сохранения ссылок обязателен, поэтому куда он будет для ПС уже без разницы, хоть на /forums/ хоть на /boards/. Ссылки приобретают новый вид и привязываться к чему-то не имеет смысла. Я так понимаю, для вас значение имеет именно техническая реализация.
IPS устанавливаете в корень домена.
Новые ссылки в IPB с чпу после установки Pages приложением по умолчанию приобретают вид /forums/topic/4906646-имя-темы/
Создаете папку /forum/ куда помещаете файлы для редиректа с vb (поставляются вместе с конвертером).
Открываете файл config.php и меняете define( 'IPS_PATH', '/home/user/forum' ); на define( 'IPS_PATH', '..' );
Все. Профит. Старые адреса редиректят на новые. Ничего вручную писать не надо. Все работает из коробки, месторасположение нового форума абсолютно не имеет никакого значения.
После всех манипуляции в итоге вы получаете из
старые адреса
/forum/forumdisplay.php?f=1
/forum/showthread.php?t=1
/forum/member.php?m=1
новые адреса
/forums/forum/1-название-форума/
/forums/topic/1-название-темы/
/profile/1-имя-пользователя/
#19
Отправлено 23 Февраль 2019 - 08:27
... после ответа увидел обновление поста, вижу что будет таки /forums. Да и черт с ним, главное все же чтобы поисковики все нормально видели.
Я так более менее понял как все сделать, кроме момента - какие файлы переносить в ту папку?
#20
Отправлено 23 Февраль 2019 - 09:23
#21
Отправлено 23 Февраль 2019 - 09:24
Поэтому, как вариант, открыть \applications\forums\data\furl.json и заменить
"topLevel": "forums",на
"topLevel": "forum",
Далее перестроить FURL
Тогда ссылки будут вида
/forum/forum/1-название-форума/
/forum/topic/1-название-темы/
#23
Отправлено 23 Февраль 2019 - 09:34
ТС зациклился на forum. Я предложил вариант.
Цитата
В 4-ке, насколько я знаю, ничего делать не надо. Только не отключать приложение Converter
\applications\convert\hooks\FrontDispatcher.php
/* If we are here, the URL was not valid. Let's see if we need to do anything for converted sites */ catch( \OutOfRangeException $e ) { $application = \IPS\Application::load('convert'); $application::checkRedirects(); /* If we are still here, let the exception bubble up */ throw $e; }
#25
Отправлено 23 Февраль 2019 - 10:09
#26
Отправлено 23 Февраль 2019 - 10:35
#27
Отправлено 23 Февраль 2019 - 11:14
Официальная поддержка парит мозг. Как раз если ставить IPS в корень домена редиректы будут работать не зависимо от того где стоял старый форум, так как движок перехватит все ссылки.
В коде видно что нет привязки к конкретной папки где был установлен старый форум
$path = $url->data[ \IPS\Http\Url::COMPONENT_PATH ]; if( mb_strpos( $path, 'forumdisplay.php' ) !== FALSE ) { if( isset( \IPS\Request::i()->f ) ) { $oldId = \IPS\Request::i()->f; } elseif( preg_match( '#^(\d+)-[^/]+#i', $url->data[ \IPS\Http\Url::COMPONENT_QUERY ], $matches ) ) { $oldId = $matches[1]; } else { $queryStringPieces = explode( '-', mb_substr( $path, mb_strpos( $path, 'forumdisplay.php/' ) + mb_strlen( 'forumdisplay.php/' ) ) ); $oldId = $queryStringPieces[0]; } }
#28
Отправлено 25 Февраль 2019 - 20:44
Вложений на форуме не было (запрещены изначально), конвертация со второго захода прошла хорошо, насколько я могу судить поверхностно глянув.
Редиректы работают из коробки! Чему я безмерно рад)) Никогда не понимал как с ними управляться)
Огромнейшая благодарность siv1987!