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

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

 

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

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

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

furltemplates.php чпу

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

ЧПУ для IPB 3.x

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

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

Отправлено 10 Ноябрь 2011 - 13:55

Вместо:
 'in'            => array( 'regex'   => "#/user/(\d+?)#i",


(как вы наверняка сделали), надо:
 'in'            => array( 'regex'   => "#/user/(\d+?)(/|$)#i",


И перестроить кеш ЧПУ.

Народ!

Не лезьте в регулярки, хотя бы не ознакомившись с базовыми принципами их работы:)

На первый взгляд оно, конечно, выглядит просто, но тут очень много подводных камней. Не даром они считаются одной из самых "шаманских" технологий.

Мелкая ошибка в регулярке furlTemplates может привести к потере доступности половины страниц вашего сайта, и вы это даже не сразу заметите. Оно вам точно надо?

Если очень хочется сделать красивые url-ы - просмотрите темку - найдите готовые рабочие примеры. Или запросите помощи в написании.


1

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 3
  • Регистрация: 10-Ноябрь 11
  • Репутация: 0
  • IPB version:3.2.x
 

Отправлено 10 Ноябрь 2011 - 14:01

Да, все заработало. Спасибо Вам огромное. А то бился очень долго, регулярки не мой конек. ;)
0

#78 Пользователь не на сайте   dmg.shark ответил: »

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

Отправлено 13 Февраль 2012 - 21:35

Сделал все так, как сказано на первой странице. Потом обновил кеш ЧПУ.
Здесь Настройки и инструменты > Системные настройки > Система > Поисковая оптимизация (SEO) включено Перенаправление на новые URL.
Сделал .htaccess в папке /forum с правкой, как на тех же первых страницах написано.

URL сейчас вот такие: /forum/index.php?/forum/6-полезная-информация/

Подскажите, что я сделал не так?
0

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

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

Отправлено 04 Май 2012 - 14:48

Присоединяюсь к вопросу 3,3,1
0

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

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

Отправлено 04 Май 2012 - 16:26

Цитата

Настройки и инструменты > Системные настройки > Система > Поисковая оптимизация (SEO)

Там же есть еще одна нужная вам обоим настройка, убирающая "index.php?". Точное название не помню, но это селектор между вариантами "путь" и "запрос".
0

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

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

Отправлено 04 Май 2012 - 17:53

index.php убирает вроде только включение поддержки мод_реврайта. Тип "путь" удаляет знак вопроса /index.php/
0

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

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

Отправлено 08 Май 2012 - 02:04

C index.php решили вопрос, спасибо за помощь! Вылечилось с помощью мод_реврайта. Другой вопрос: сейчас вид ссылок формата http://active44.ru/forum/forum/13-мастерская, можно как то убрать forum, а то масло масленое получается (
Форум установлен в active44.ru/forum
0

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

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

Отправлено 08 Май 2012 - 10:03

Нельзя, первый forum это папка где находится форум, второй forum это модуль.
0

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

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

Отправлено 08 Май 2012 - 11:25

siv1987? спасибо
0

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

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

Отправлено 15 Сентябрь 2012 - 18:38

День добрый.
Собираю на локальном сервере форум. Поставил ipb 3.3.3, ip content 2.3.2, установил его главной страницей, .htaccess mod_rewrite включен, тип url - путь.
Если пользователь не авторизован, то при нажатии на сылку, указанную на скрине, пользователя переадресовывает по адресу: www.test.ru/forums/topic/2-proverka/ Это меня вполне устраивает. Т.е. гостя перебрасывает в начало темы.
После того, как пользователь авторизуется, то при нажатии на ссылку, указанную на скрине, пользователя переадресовывает по адресу: www.test.ru/forums/topic/2#entry4-proverka/ , где жирным выделена часть, которая отвечает за переадресацию на последнее сообщение темы. Так вот, мне нужно привести данную ссылку к виду: www.test.ru/forums/topic/2-proverka/#entry4
Насколько я понял, это изменяется в furlTemplates.php
Код моего furlTemplates.php:
<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.2.3
 * Sets up SEO templates
 * Last Updated: $Date: 2011-08-02 15:53:39 -0400 (Tue, 02 Aug 2011) $
 * </pre>
 *
 * @author      $Author: bfarber $
 * @copyright   © 2001 - 2009 Invision Power Services, Inc.
 * @license     http://www.invisionp...rd/license.html
 * @package     IP.Board
 * @subpackage  Forums
 * @link        http://www.invisionpower.com
 * @since       20th February 2002
 * @version     $Rev: 9351 $
 *
 */

if ( ! defined( 'IN_IPB' ) )
{
    print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
    exit();
}

/**
 * SEO templates
 *
 * 'allowRedirect' is a flag to tell IP.Board whether to check the incoming link and if not formatted correctly, redirect the correct one
 *
 * OUT FORMAT REGEX:
 * First array element is a regex to run to see if we've a match for the URL
 * The second array element is the template to use the results of the parenthesis capture
 *
 * Special variable #{__title__} is replaced with the $title data passed to output->formatUrl( $url, $title)
 *
 * IMPORTANT: Remember that when these regex are used, the output has not been fully parsed so you will get:
 * showuser={$data['member_id']} NOT showuser=1 so do not try and match numerics only!
 *
 * IN FORMAT REGEX
 *
 * This allows the registry to piece back together a URL based on the template regex
 * So, for example: "/user/(\d+?)/", 'matches' => array(  array( 'showuser' => '$1' ) )tells IP.Board to populate 'showuser' with the result
 * of the parenthesis capture #1
 */
$_SEOTEMPLATES = array(
    
    'showannouncement'     => array( 'app'           => 'forums',
                                     'allowRedirect' => 1,
                                     'out'           => array( '#showannouncement=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'forums/forum-$3/announcement-$1-#{__title__}/$4' ),
                                     'in'            => array( 'regex'   => '#/forums/forum-(\d+?)?/announcement-(\d+?)-#i',
                                                               'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),
                                                    
    'showforum'     => array( 'app'           => 'forums',
                              'allowRedirect' => 1,
                              'out'           => array( '#showforum=(.+?)(&|$)#i', 'forums/forum/$1-#{__title__}/$2' ),
                              'in'            => array( 'regex'   => '#^/forums/forum/(\d+?)-#i',
                                                        'matches' => array( array( 'showforum', '$1' ) ) ) ),

    'showtopicunread'=> array( 'app'              => 'forums',
                               'allowRedirect'    => 1,
                               'out'              => array( '#showtopic=(.+?)(?:&|&amp;)view=getnewpost(&|$)#i', 'forums/topic/$1-#{__title__}/unread/$2' ),
                               'in'               => array( 'regex'   => '#^/forums/topic/(\d+?)-([^/]+?)/unread(/|$)#i',
                                                            'matches' => array( array( 'showtopic', '$1' ),
                                                                                array( 'view', 'getnewpost' ) ) ) ),
                                                                                
    'showtopicnextunread'=> array( 'app'              => 'forums',
                                   'allowRedirect'    => 1,
                                   'out'              => array( '#showtopic=(.+?)(?:&|&amp;)view=getnextunread(&|$)#i', 'forums/topic/$1-#{__title__}/nextunread/$2' ),
                                   'in'               => array( 'regex'   => '#^/forums/topic/(\d+?)-([^/]+?)/nextunread(/|$)#i',
                                                                'matches' => array( array( 'showtopic', '$1' ),
                                                                                    array( 'view', 'getnextunread' ) ) ) ),

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

    'acteqst'       => array( 'app'           => 'forums',
                              'allowRedirect' => 1,
                              'out'           => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'forums/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', 'forums/$1' ),
                              'in'            => array( 'regex'   => '#^/forums(/|$|\?)#i',
                                                        'matches' => array( array( 'act', 'idx' ) ) ) ),
);

Прошу помочь мне привести ссылку к виду, который я указал. Буду вам очень благодарен.
-IMG-

Сообщение изменено: Ursus102 (15 Сентябрь 2012 - 18:55)

0

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

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

Отправлено 15 Сентябрь 2012 - 18:52

Это был какой-то баг не связанный с темплейтами чпу. Тема обсуждалась на IBR
0

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

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

Отправлено 17 Сентябрь 2012 - 16:28

http://forums.ibreso...p?/topic/64558/

Баг кажется проявляется когда для обеих констант IPB_USE_SEO_TRANSLIT и IPB_USE_ONLY_ID_FURL установлено true (/initdata.php).
0

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

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

Отправлено 03 Октябрь 2012 - 21:56

Наткнулся на неразрешимаю для меня проблему..

На форуме(3.3.4) включены и корректно функционируют ЧПУ с транслитерацией.

Недавно организовал RSS экспорт некоторых тем, и заметил следующую вещь.

При создании ссылки на RSS канал она получается следующего вида - .../forum/rss/forums/1-nformatsiyaonige13/ исходный вариант был такой - Информация о Книге 13, и так везде, то есть при формировании ссылок почему то отбрасываются первые буквы слов и не проставляются никакие разделители, при этом в транслитерации названий тем этой проблемы нет, там все ок.

Буду очень благодарен за подсказки, куда копать..

Заметил вот что, откидывает буквы он только в том случае если они в верхнем регистре, в моем примере это "И" и "К", из за чего так происходит?

То есть вопрос немного изменился, как добавить разделители в ссылки RSS? какой файл править?

Сообщение изменено: DreamDay (03 Октябрь 2012 - 22:14)

0

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

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

Отправлено 07 Октябрь 2012 - 00:10

Просмотреть сообщениеRitsuka 10 Ноябрь 2011 - 13:55 сказал(а):

Вместо:
 'in'            => array( 'regex'   => "#/user/(\d+?)#i",


(как вы наверняка сделали), надо:
 'in'            => array( 'regex'   => "#/user/(\d+?)(/|$)#i",


И перестроить кеш ЧПУ.

с 'in' понятно
а в 'out' => array что изменить нужно,чтобы профили пользователей были site.ru/id100 например

Просмотреть сообщениеHooLIGUN 07 Октябрь 2012 - 00:08 сказал(а):

с 'in' понятно
а в 'out' => array что изменить нужно,чтобы профили пользователей были site.ru/id100 например

Ой уже нашел решение

'showuser' => array( 'app' => 'members',
'allowRedirect' => 1,
'out' => array( '#showuser=(.+?)((?:&|&amp;)f=(.+?))?(&|$)#i', 'id$1' ),
'in'            => array( 'regex'   => "#/id(\d+?)(/|$)#i",
'matches' => array( array( 'showuser', '$1' ) ) ) ),

Сообщение изменено: HooLIGUN (07 Октябрь 2012 - 00:08)

0

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

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

Отправлено 11 Октябрь 2012 - 20:59

Все еще актуальный вопрос...как поставить разделитель в ссылки RSS? какой файл отвечает за формирование этих ссылок?
0

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


  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

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
При копировании материалов с сайта
прямая ссылка на источник обязательна