ЧПУ для IPB 3.x - Страница 9 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются проблемы поисковой оптимизации и индексирования форумов.
Если зашли сюда случайно, пожалуйста, не оффтопьте и обратите внимание на другие разделы.
Оформление форумов, включая верстку скинов.
Настройка форумов, установка и администрирование.
Размещение рекламы на форумах.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

furltemplates.php чпу

  • 11 Страниц +
  • « Первая
  • 7
  • 8
  • 9
  • 10
  • 11
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

ЧПУ для IPB 3.x

#121 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 070
  • IPB version:3.1.x
 

Отправлено 13 Июль 2013 - 17:07

Просмотреть сообщениеCompForum сказал(а):

Может кто делал уже, подскажите, пожалуйста:

Пагинация через темплейты чпу не меняется. А правкой скриптов и редактирования не простой системы ЧПУ вряд ли кто-то стал бы заниматься.
0

#122 Пользователь не на сайте   CompForum ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 8
  • Регистрация: 15-Апрель 11
  • Репутация: 2
  • Откуда:Челябинск
  • IPB version:3.4.x
 

Отправлено 14 Июль 2013 - 13:43

Да, сложности. Правил publicOutput, coreVariables + темплейты, но так и не заработало :blink: :D
Тем не менее, форумы по компьютерной и технической тематике в топе яндекса предпочитают формат (но у многих vBulletin):
/t5.html
/t5-2.html
/t5-2.html#post56
А потом уже дополнительные параметры типа короткой ссылки на пост через ?p=56, либо просто #post56.
Ещё так очень часто встречается:
/t5/
/t5-2/
/t5-2/#post56 - этот вариант какой-то неправильный по сравнению с предыдущим с html ;)
Ещё так делают:
/f5/t5p2/ - 5-й форум, 5-й топик, 2-ая страница.
В этом варианте последовательность какая-то присутствует.

Если бы так как на vBulletin можно было бы отдельный пост выводить, тогда бы хорошо было сделать так:
хттп://форум.ру/f5/ - 5-й форум
хттп://форум.ру/t5/ - 5-й топик
хттп://форум.ру/t5p2/ - 5-й топик 2-ая страница
хттп://форум.ру/p56/ - 567 пост, выводящийся в VB на отдельных страницах...

Но для IPB получается ближе так:
хттп://форум.ру/f5/ - 5-й форум
хттп://форум.ру/t5/ - 5-й топик
хттп://форум.ру/t5/p2/ - 5-й топик 2-ая страница (page-2 = p2/)
хттп://форум.ру/t5/p2/#entry567 - 567 пост на второй странице 5-ой темы.

В раздумьях :blink:

Очень не нравятся городульки:
хттп://форум.ру/topic5.html/page-2#entry79005
Особенно, когда после html идет / <_<
Можно поставить 'isPagesMode' => 0, и получить вместо слеша знак вопроса, но тогда смысл всего...

Сообщение изменено: CompForum (14 Июль 2013 - 14:13)

0

#123 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 070
  • IPB version:3.1.x
 

Отправлено 14 Июль 2013 - 19:49

Просмотреть сообщениеCompForum сказал(а):

Тем не менее, форумы по компьютерной и технической тематике в топе яндекса предпочитают формат (но у многих vBulletin):

Предпочитают потому что все это вбуллетин, а там другая система ЧПУ. И вряд ли это зависит от того, чего они предпочитают - на ипб так, и все предпочитают именно так.

Просмотреть сообщениеCompForum сказал(а):

Если бы так как на vBulletin можно было бы отдельный пост выводить, тогда бы хорошо было сделать так:

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

Просмотреть сообщениеCompForum сказал(а):

Очень не нравятся городульки:

Исключительно личные предпочтения. Пользователям и всем остальным, поверьте, это мало заботит. И, если вы полагаете что сменив тип чпу окажетесь в топе со стопиццот пользователями - боюсь вас сильно разочаровать.
Ру-боард до сих пор на динамических урл-ах сидит.
0

#124 Пользователь не на сайте   CompForum ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 8
  • Регистрация: 15-Апрель 11
  • Репутация: 2
  • Откуда:Челябинск
  • IPB version:3.4.x
 

Отправлено 17 Июль 2013 - 05:36

Сделал так:
хттп://forum.ru/f1/ - первая страница подфорума
хттп://forum.ru/f1/page2/ - вторая страница подфорума
хттп://forum.ru/t1/ - первая страница темы
хттп://forum.ru/t1/page2/ - вторая страница темы
хттп://forum.ru/t1/page2/#entry727 - ссылка на 727 пост темы
хттп://forum.ru/userid1/ - ссылка на профиль пользователя


Изменения в файлах:

coreVariables.php
// Найти:
'varPage'  => 'page-',

// Заменить на:
'varPage'  => 'page',


ipsRegistry.php
// Найти:
preg_match( '#(' . preg_quote( self::$_seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))(?:$|' . preg_quote( self::$_seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches );

// Заменить на:
preg_match( '#(' . preg_quote( self::$_seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))/(?:$|' . preg_quote( self::$_seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches );


publicOutput.php
// Найти:
$_page .= $this->seoTemplates['__data__']['varPage'] . $vv;

// Заменить на:
$_page .= $this->seoTemplates['__data__']['varPage'] . $vv . '/';


// Найти:
$_toTest = preg_replace( '#^(.*)/(.)?#', '\1/' . $this->seoTemplates['__data__']['varPage'] . $page . '\2', $_toTest );

// Заменить на:
$_toTest = preg_replace( '#^(.*)/(.)?#', '\1/' . $this->seoTemplates['__data__']['varPage'] . $page . '/\2', $_toTest );


// Найти:
preg_match( '#(' . preg_quote( $this->seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))(?:$|' . preg_quote( $this->seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches );

// Заменить на:
preg_match( '#(' . preg_quote( $this->seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))/(?:$|' . preg_quote( $this->seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches );


sitemapgenerator.php
// Найти:
$_page .= self::$_seoTemplates['__data__']['varPage'] . $vv;

// Заменить на:
$_page .= self::$_seoTemplates['__data__']['varPage'] . $vv . '/';


furlTemplates.php (из members)
// Найти:
'showuser'	=> array( 'app'		      => 'members',
						  'allowRedirect' => 1,
						  'out'           => array( '#showuser=(.+?)((?:&|&amp;)f=(.+?))?(&|$)#i', 'user/$1-#{__title__}/$2$4' ),
						  'in'            => array( 'regex'   => "#^/user/(\d+?)-#i",
												    'matches' => array( array( 'showuser', '$1' ) ) ) ),

// Заменить на:
'showuser'	=> array( 'app'		      => 'members',
						  'allowRedirect' => 1,
						  'out'           => array( '#showuser=(\d+)((?:&|&amp;)f=(\d+))?(&|$)#i', 'userid$1/$2$4' ),
						  'in'            => array( 'regex'   => "#^/userid(\d+)#i",
												    'matches' => array( array( 'showuser', '$1' ) ) ) ),


furlTemplates.php (из forums)
// Найти:
$_SEOTEMPLATES = array(
	
	'showannouncement'     => array( 'app'		     => 'forums',
									 'allowRedirect' => 1,
									 'out'           => array( '#showannouncement=(.+?)((?:&|&amp;)f=(.+?))?(&|$)#i', 'forum-$3/announcement-$1-#{__title__}/$4' ),
							  		 'in'            => array( 'regex'   => '#/forum-(\d+?)?/announcement-(\d+?)-#i',
													 		   'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),
													
	'showforum'     => array( 'app'		      => 'forums',
							  'allowRedirect' => 1,
							  'isPagesMode'   => 1,
							  'out'           => array( '#showforum=(.+?)(&|$)#i', 'forum/$1-#{__title__}/$2' ),
							  'in'            => array( 'regex'   => '#^/forum/(\d+?)-#i',
													    'matches' => array( array( 'showforum', '$1' ) ) ) ),


	'showtopic'     => array( 'app'		      => 'forums',
							  'allowRedirect' => 1,
							  'isPagesMode'   => 1,
							  'out'           => array( '#showtopic=(.+?)(\#|&|$)#i', 'topic/$1-#{__title__}/$2' ),
							  'in'            => array( 'regex'   => '#^/topic/(\d+?)-#i',
												        'matches' => array( array( 'showtopic', '$1' ) ) ) ),

	'acteqst'       => array( 'app'		      => 'forums',
							  'allowRedirect' => 1,
							  'out'           => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'topic/$2-#{__title__}/$3' ),
							  'in'            => array( 'regex'   => '#^notavalidrequest$#i',
												        'matches' => array( array( 'showtopic', '0' ) ) ) ),
							
	'act=idx'       => array( 'app'		      => 'forums',
							  'allowRedirect' => 0,
							  'out'           => array( '#act=idx(&|$)#i', 'index$1' ),
							  'in'            => array( 'regex'   => '#^/index(/|$|\?)#i',
												        'matches' => array( array( 'act', 'idx' ) ) ) ),
);

// Заменить на:
$_SEOTEMPLATES = array(
	
	'showannouncement'     => array( 'app'		     => 'forums',
									 'allowRedirect' => 1,
									 'out'           => array( '#showannouncement=(\d+)((?:&|&amp;)f=(\d+))?(&|$)#i', 'f$3/announcement$1/$4' ),
							  		 'in'            => array( 'regex'   => '#/f(\d+)?/announcement(\d+)#i',
													 		   'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),
													
	'showforum'     => array( 'app'		      => 'forums',
							  'allowRedirect' => 1,
							  'isPagesMode'   => 1,
							  'out'           => array( '#showforum=(\d+)(&|$)#i', 'f$1/$2' ),
							  'in'            => array( 'regex'   => '#^/f(\d+)#i',
													    'matches' => array( array( 'showforum', '$1' ) ) ) ),


	'showtopic'     => array( 'app'		      => 'forums',
							  'allowRedirect' => 1,
							  'isPagesMode'   => 1,
							  'out'           => array( '#showtopic=(\d+)(\#|&|$)#i', 't$1/$2' ),
							  'in'            => array( 'regex'   => '#^/t(\d+)#i',
												        'matches' => array( array( 'showtopic', '$1' ) ) ) ),

	'acteqst'       => array( 'app'		      => 'forums',
							  'allowRedirect' => 1,
							  'out'           => array( '#act=ST(.*?)&t=(\d+)(&|$)#i', 't$2/$3' ),
							  'in'            => array( 'regex'   => '#^notavalidrequest$#i',
												        'matches' => array( array( 'showtopic', '0' ) ) ) ),
							
	'act=idx'       => array( 'app'		      => 'forums',
							  'allowRedirect' => 0,
							  'out'           => array( '#act=idx(&|$)#i', 'index$1' ),
							  'in'            => array( 'regex'   => '#^/index(/|$|\?)#i',
												        'matches' => array( array( 'act', 'idx' ) ) ) ),
);


Особо не проверял, вроде бы работает B)
2

#125 Пользователь не на сайте   CompForum ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 8
  • Регистрация: 15-Апрель 11
  • Репутация: 2
  • Откуда:Челябинск
  • IPB version:3.4.x
 

Отправлено 28 Июль 2013 - 03:46

Вторая замена в publicOutput.php для версии IPB 3.4.3 будет такой:
// Найти:
$_toTest = preg_replace( '#^(.*)/(.)?#', '\1/page-' . $page . '\2', $_toTest );
 
// Заменить на:
$_toTest = preg_replace( '#^(.*)/(.)?#', '\1/page' . $page . '/\2', $_toTest );

0

#126 Пользователь не на сайте   HHPauk ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 11
  • Регистрация: 15-Октябрь 13
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 17 Октябрь 2013 - 09:48

прошу помощи:
версия 3.4.5 IPS, необходимо изменить ссылки с кирилицы на транслит

заранее благодарен
0

#127 Пользователь не на сайте   HHPauk ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 11
  • Регистрация: 15-Октябрь 13
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 17 Октябрь 2013 - 10:01

прошу прощения - чуть позже нашел хук
0

#128 Пользователь не на сайте   Alien2001 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 90
  • Регистрация: 26-Июль 12
  • Репутация: 10
  • IPB version:3.3.x
 

Отправлено 23 Ноябрь 2013 - 17:46

Хочу изменить ссылку на Правила форума, чтобы они не были жуткого вида index.php?app=forums&module=extras&section=boardrules, а попроще /boardrules

Вписал в furltemplates:
'boardrules'	=> array(  'app'		   => 'forums',
			   'allowRedirect' => 0,
                           'out'		   => array( '#app=forums(&|&amp;)module=extras(&|&amp;)section=boardrules(&|&amp;|?)#i', 'boardrules/' ),
			   'in'			   => array( 'regex'		=> "#/boardrules(/|$|\?)#i",
							     'matches'	=> array( array( 'app', 'forums' ),
										   array( 'module', 'extras' ),
										   array( 'section', 'boardrules' )																		  )
												) 
									),

При прямом заходе на /boardrules все работает, но ссылка на главной странице не парсится и по-прежнему выводится кривой. Чего-то я не доделал явно. Кстати, а название правила (в данном случае имя массива boardrules) оно вообще имеет значение и куда-то еще вносится, кроме файла furlTemplates.php?
0

#129 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 070
  • IPB version:3.1.x
 

Отправлено 23 Ноябрь 2013 - 18:16

К ссылки boardrules не применяется чпу преобразование.

1. admin\applications\forums\extensions\furlTemplates.php
	'boardrules' => array(
		'app'           => 'forums',
		'allowRedirect' => 0,
		'out'           => array( '#app=forums(?:&|&amp;)module=extras(?:&|&amp;)section=boardrules#i', 'boardrules/' ),
		'in'            => array( 'regex'   => '#/boardrules/#i',
								 'matches'  => array( array( 'app', 'forums' ), array( 'module', 'extras' ), array( 'section', 'boardrules' ) ) ) ),


2. Перестроить кеш чпу

3. Внешний вид -> Шаблон -> globalTemplate
Найти
{parse url="app=forums&amp;module=extras&amp;section=boardrules" base="public"}

Заменить
{parse url="app=forums&amp;module=extras&amp;section=boardrules" base="public" seotitle="boardrules" template="boardrules"}

2

#130 Пользователь не на сайте   Alien2001 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 90
  • Регистрация: 26-Июль 12
  • Репутация: 10
  • IPB version:3.3.x
 

Отправлено 23 Ноябрь 2013 - 19:53

Спасибо, получилось!
0

#131 Пользователь не на сайте   sudakturizmnet ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 26-Февраль 14
  • Репутация: 0
  • Откуда:Судак
  • IPB version:3.4.x
 

Отправлено 06 Март 2014 - 14:48

Подскажите как сделать что-бы был такой адрес,дапустим я создал тему рецепта Лосось с апельсиновым джемом,мне нужно что-бы адрес был такой http:адрес сайта/forum/losos_s_apelsinovym_djemom
как это сделать
0

#132 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 070
  • IPB version:3.1.x
 

Отправлено 06 Март 2014 - 18:12

Никак. Только с ид
/topic/%id-lososi-s-apelsinon.html

.html можно убрать, ид в конце переместить,но без него никак.
0

#133 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 611
  • Регистрация: 14-Июнь 09
  • Репутация: 14
  • IPB version:3.1.x
 

Отправлено 06 Декабрь 2014 - 15:12

Кстати в ЧПУ есть можно так сказать дыра в безопасности. Если ссылка на тему или раздел имеет вид к примеру http://домен/topic/ид темы-название темы/ то посетитель не имея доступа к такой теме (разделу) с лёгкость может прочитать его.
Считаю это дырой в безопасности.
0

#134 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 070
  • IPB version:3.1.x
 

Отправлено 06 Декабрь 2014 - 15:19

Если дыра и есть, то это не в чпу, так как чпу только парсит параметры из урл'а. За проверкой прав отвечают другие функции. О таком баге что можно зайти в тему без прав слышу впервые. Был такой, но он касался ответов и не имел отношения к чпу.
0

#135 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 611
  • Регистрация: 14-Июнь 09
  • Репутация: 14
  • IPB version:3.1.x
 

Отправлено 06 Декабрь 2014 - 16:36

Просмотреть сообщениеsiv1987 сказал(а):

О таком баге что можно зайти в тему без прав слышу впервые.

Вы не так меня поняли. Зайти в тему конечно невозможно, а вот прочитать её название с ЧПУ - легко.

Просмотреть сообщениеsiv1987 сказал(а):

За проверкой прав отвечают другие функции.

Странно что разрабы не предусмотрели это. Скажем при заходе в такую тему что бы был редирект на страницу ошибки.
0

Сообщить об этой теме:


  • 11 Страниц +
  • « Первая
  • 7
  • 8
  • 9
  • 10
  • 11
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна