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

Установка IPS в корень или в /forum?

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

Добрый день! Встал вопрос переезда с булки на ипборд, но вот незадача... Нужно чтобы Pages было на site.com/, а форум на site.com/forum (где он и есть на булке сейчас), при этом надо чтобы редиректы со старого форума на новый работали. Можно так сделать?

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

Опубликовано:
  • Автор
А в чем такая необходимость сохранить именно /forum/?

Надо смотреть как генерируется ссылки на форумы и темы. Вот как раз изменить его может быть проблематичным, если это название самого приложения forums.

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

Честно говоря уже третий день пытаюсь вникнуть как сделать лучше - голова квадратная... Наверное необходимость как раз в том, что если допустим я не заморачиваюсь с Pages, то сейчас у меня IPS установлен в папку /forum и из коробки все редиректы работают автоматически, то есть мне больше делать ничего не надо. Но поскольку я захотел сделать Pages в корне сайта (вывод форумных данных), а так сделать можно только если перенести IPS в корень, назначить его приложением по умолчанию и, соответственно движок сам назначает форуму адрес /forums, то с этим надо что-то сделать. Другой вариант, если я правильно понимаю, - устанавливаю сразу Suit в корень, Pages у меня по умолчанию выводятся в site.com/, а форум у меня выводится в site.com/forums, но при этом редиректы из коробки вообще не работают, и их все полностью нужно писать самому, чего я, к сожалению, не умею. Да и это наверное не просто для всех категорий урлов написать.

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

Объясню проще, а то вы окончательно запутались.

Старые адреса имеют формат /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-имя-пользователя/

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

Вот это, видимо, то что нужно! Просто официальная поддержка мне уже два дня голову морочит, что единственный способ это все сделать - писать самому редиректы. Что если ставить IPS в корень - стандартные редиректы работать не будут. А как я теперь понял это решается перемещением некоторых файлов в папку forum и прописыванием в конфиге. И все же я не уяснил момент с адресом форума в таком случае. Он будет на /forums или на /forum?

 

... после ответа увидел обновление поста, вижу что будет таки /forums. Да и черт с ним, главное все же чтобы поисковики все нормально видели.

 

Я так более менее понял как все сделать, кроме момента - какие файлы переносить в ту папку?

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

Ок, давайте посмотрим с другой стороны. Установите форум в корень домена и будет у вас /forum вместо /forums и что от этого изменится? Вы что-то прицепились к этому /forum и я не могу понять почему. Редиректы можно сделать из любого места, и я наглядно показал как это сделать. То что сказала офф поддержка это стандартный слив. Для поисковых систем не имеет значение, так как адреса по любому меняются, для них главное чтобы был редирект. Больше я не вижу причин зацикливатся на этом /forum, он не решает ничего.

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

В АЦ можно менять FURL'ы. Но система не позволит сменить forums на forum.

Поэтому, как вариант, открыть \applications\forums\data\furl.json и заменить

"topLevel": "forums",

на

"topLevel": "forum",

Далее перестроить FURL

Тогда ссылки будут вида

/forum/forum/1-название-форума/

/forum/topic/1-название-темы/

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

newbie, а смысл от этого? Ну будет там /forum вместо /forums, но редиректы все равно надо будет сделать из физической папки forum. А потом еще и с обновлениями будет мучатся каждый раз.

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

newbie, а смысл от этого?

ТС зациклился на forum. Я предложил вариант.

 

Создаете папку /forum/ куда помещаете файлы для редиректа с vb (поставляются вместе с конвертером).

Что за файлы?

В 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;
	}

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

Вот именно что зациклился.

 

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

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

Посмотрел функцию checkRedirects(), регулярные выражения вроде не привязываются к конкретной папки. Есть шанс что редиректы могут заработать из коробки без допилов и копирование файлов. Проблемы скорее всего могут возникнуть если ставить уровнем ниже или в другой каталог.

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

Как по мне ТС нужно разобраться, как работает IPS4 подчеркнет плюсы и минусы её. После выполнить тестовую конвертацию и разобраться с редиректами.... 100% конвертация буде не из легких, булка с большим колл постов + вложения + нужны не слабые ресурсы сервера.

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

Просто официальная поддержка мне уже два дня голову морочит, что единственный способ это все сделать - писать самому редиректы. Что если ставить IPS в корень - стандартные редиректы работать не будут.

Официальная поддержка парит мозг. Как раз если ставить 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];
			}
		}

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

При поддержке siv1987 удалось разобраться с редиректами.

Вложений на форуме не было (запрещены изначально), конвертация со второго захода прошла хорошо, насколько я могу судить поверхностно глянув.

Редиректы работают из коробки! Чему я безмерно рад)) Никогда не понимал как с ними управляться)

Огромнейшая благодарность siv1987!

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

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