Ritsuka 540 11/10/11 10:56 Вместо: 'in' => array( 'regex' => "#/user/(\d+?)#i", (как вы наверняка сделали), надо: 'in' => array( 'regex' => "#/user/(\d+?)(/|$)#i", И перестроить кеш ЧПУ. Народ! Не лезьте в регулярки, хотя бы не ознакомившись с базовыми принципами их работы:) На первый взгляд оно, конечно, выглядит просто, но тут очень много подводных камней. Не даром они считаются одной из самых "шаманских" технологий. Мелкая ошибка в регулярке furlTemplates может привести к потере доступности половины страниц вашего сайта, и вы это даже не сразу заметите. Оно вам точно надо? Если очень хочется сделать красивые url-ы - просмотрите темку - найдите готовые рабочие примеры. Или запросите помощи в написании. 1 Поделиться сообщением Ссылка на сообщение
sosodef 0 11/10/11 11:02 Да, все заработало. Спасибо Вам огромное. А то бился очень долго, регулярки не мой конек. ;) Поделиться сообщением Ссылка на сообщение
dmg.shark 0 02/13/12 18:36 Сделал все так, как сказано на первой странице. Потом обновил кеш ЧПУ.Здесь Настройки и инструменты > Системные настройки > Система > Поисковая оптимизация (SEO) включено Перенаправление на новые URL.Сделал .htaccess в папке /forum с правкой, как на тех же первых страницах написано. URL сейчас вот такие: /forum/index.php?/forum/6-полезная-информация/ Подскажите, что я сделал не так? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 05/04/12 13:27 Настройки и инструменты > Системные настройки > Система > Поисковая оптимизация (SEO)Там же есть еще одна нужная вам обоим настройка, убирающая "index.php?". Точное название не помню, но это селектор между вариантами "путь" и "запрос". Поделиться сообщением Ссылка на сообщение
siv1987 2628 05/04/12 14:54 index.php убирает вроде только включение поддержки мод_реврайта. Тип "путь" удаляет знак вопроса /index.php/ Поделиться сообщением Ссылка на сообщение
Велес 0 05/07/12 23:05 C index.php решили вопрос, спасибо за помощь! Вылечилось с помощью мод_реврайта. Другой вопрос: сейчас вид ссылок формата http://active44.ru/forum/forum/13-мастерская, можно как то убрать forum, а то масло масленое получается (Форум установлен в active44.ru/forum Поделиться сообщением Ссылка на сообщение
siv1987 2628 05/08/12 07:04 Нельзя, первый forum это папка где находится форум, второй forum это модуль. Поделиться сообщением Ссылка на сообщение
Ursus102 0 09/15/12 15:39 (изменено) День добрый.Собираю на локальном сервере форум. Поставил 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=(.+?)(?:&|&)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=(.+?)(?:&|&)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' ) ) ) ), ); Прошу помочь мне привести ссылку к виду, который я указал. Буду вам очень благодарен. Изменено 15 сентября 2012 пользователем Ursus102 Поделиться сообщением Ссылка на сообщение
siv1987 2628 09/15/12 15:53 Это был какой-то баг не связанный с темплейтами чпу. Тема обсуждалась на IBR Поделиться сообщением Ссылка на сообщение
siv1987 2628 09/17/12 13:29 http://forums.ibresource.ru/index.php?/topic/64558/ Баг кажется проявляется когда для обеих констант IPB_USE_SEO_TRANSLIT и IPB_USE_ONLY_ID_FURL установлено true (/initdata.php). Поделиться сообщением Ссылка на сообщение
DreamDay 0 10/03/12 18:57 (изменено) Наткнулся на неразрешимаю для меня проблему.. На форуме(3.3.4) включены и корректно функционируют ЧПУ с транслитерацией. Недавно организовал RSS экспорт некоторых тем, и заметил следующую вещь. При создании ссылки на RSS канал она получается следующего вида - .../forum/rss/forums/1-nformatsiyaonige13/ исходный вариант был такой - Информация о Книге 13, и так везде, то есть при формировании ссылок почему то отбрасываются первые буквы слов и не проставляются никакие разделители, при этом в транслитерации названий тем этой проблемы нет, там все ок. Буду очень благодарен за подсказки, куда копать.. Заметил вот что, откидывает буквы он только в том случае если они в верхнем регистре, в моем примере это "И" и "К", из за чего так происходит? То есть вопрос немного изменился, как добавить разделители в ссылки RSS? какой файл править? Изменено 3 октября 2012 пользователем DreamDay Поделиться сообщением Ссылка на сообщение
HooLIGUN 10 10/06/12 21:11 (изменено) Вместо: 'in' => array( 'regex' => "#/user/(\d+?)#i", (как вы наверняка сделали), надо: 'in' => array( 'regex' => "#/user/(\d+?)(/|$)#i", И перестроить кеш ЧПУ.с 'in' понятноа в 'out' => array что изменить нужно,чтобы профили пользователей были site.ru/id100 например с 'in' понятноа в 'out' => array что изменить нужно,чтобы профили пользователей были site.ru/id100 напримерОй уже нашел решение 'showuser' => array( 'app' => 'members', 'allowRedirect' => 1, 'out' => array( '#showuser=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'id$1' ), 'in' => array( 'regex' => "#/id(\d+?)(/|$)#i", 'matches' => array( array( 'showuser', '$1' ) ) ) ), Изменено 6 октября 2012 пользователем HooLIGUN Поделиться сообщением Ссылка на сообщение
DreamDay 0 10/11/12 18:00 Все еще актуальный вопрос...как поставить разделитель в ссылки RSS? какой файл отвечает за формирование этих ссылок? Поделиться сообщением Ссылка на сообщение