Форум IP.Board

Наконец-то, дружественные URL’ы!

Наверное, одной из самых запрашиваемых возможностей, которые мы получали с момента самой первой версии IP.Board были ‘дружественные URLы’ (ЧПУ).

Я крайне осторожно попытался избежать фразы «Поисковая оптимизация» в первом параграфе, несмотря на то, что она достаточно часто мелькала в запросах ЧПУ. Конечно же то, что мы добавили, несомненно помогает поисковой оптимизации, но важно понимать, что ЧПУ не является готовым решением для оптимизации и не может быть им.

Итак, что же мы сделали?

Если объяснять коротко, то ЧПУ! Однако процесс создания и управления ими куда более интересные вещи, нежели конечный результат, но наберитесь терпения об эти процессах вы узнаете чуть позже. Давайте в начале посмотрим на примеры наших новых URLов.

Примеры ссылок для IPB 2.3.x:

Для перехода в форум (My Test Forum):

http://www.board.com/forums/index.php?showforum=10

Для перехода в тему (My Test Topic):

http://www.board.com/forums/index.php?showtopic=99 

Для просмотра пользователя (Matt Mecham):

http://www.board.com/forums/index.php?showuser=30

Данные ссылки вполне нормальные. Они короткие и лаконичные, да и поисковики их воспринимают хорошо, но мы их можем сделать немного лучше чтобы добиться их большей привлекательности. Посмотрим?

Для серверов на базе Windows можно использовать ‘query’ метод генерации ссылок, тогда URL выглядят так:

http://www.board.com/forums/index.php?/forum/10/my-test-forum 
http://www.board.com/forums/index.php?/top...9/my-test-topic 
http://www.board.com/forums/index.php?/user/30/matt-mecham

В других случаях есть метод ‘path_info’ и ссылки выглядят так:

http://www.board.com/forums/index.php/forum/10/my-test-forum 
http://www.board.com/forums/index.php/topic/99/my-test-topic 
http://www.board.com/forums/index.php/user/30/matt-mecham

Еще лучше если вы имеете возможность вносить настройки в ваш .htaccess файл и у вас есть mod_rewrite. Для удобства наша система сгенерирует правила для mod_rewrite. И тогда конечный результат будет таким:

http://www.board.com/forums/forum/10/my-test-forum 
http://www.board.com/forums/topic/99/my-test-topic 
http://www.board.com/forums/user/30/matt-mecham

А что будет, если использовать диакритические знаки, например как здесь: M?tt M??h?m? Они будут просто заменены наиболее подходящими аналогами. Для этого примера на «matt-mecham».

Как я смогу использовать их?

Самый простой способ получить «дружественный URL» использовать {parse} тег:

{parse url="showtopic=99" base="public" seotitle="my-test-topic" template="showtopic"}

Параметр «seotitle» уже готовая строчка для использования в URL. Если вам хочется создать данный параметр налету для получения чего-то более дружественного, вы можете использовать такую конструкцию:

{parse url="showtopic=99" base="public" seotitle="%%My Test Topic%%" template="showtopic"}

Дополнительный параметр «template» указывает какой шаблон стоит использовать системе при генерации ссылки. Управление данными шаблонами осуществляется в единственном файле «admin/extensions/seoUrlTemplates.php». Ниже пример содержимого такого файла:

$templates = array(
# APP: MEMBERS
'showuser'   => array( 'out' => array( 'showuser=(.+?)(&|$)', 'user/$1/#{__title__}$2' ),
'in'         => array( "/user/(\d+?)/", array( 'showuser', 1 ) ) ),

# APP: FORUMS
'showforum'  => array( 'out' => array( 'showforum=(.+?)(&|$)', 'forum/$1/#{__title__}$2' ),
'in'         => array( "/forum/(\d+?)/"  , array( 'showforum', 1 ) ) ),

'showtopic'  => array( 'out' => array( 'showtopic=(.+?)(&|$)', 'topic/$1/#{__title__}$2' ),
'in'         => array( "/topic/(\d+?)/", array( 'showtopic', 1 ) ) ),

);

В примере показаны шаблон для ссылок на профиль пользователя, форумы и темы. В поле ‘out’ показано как строить ссылки, а в поле ‘in’ — как данные ссылки обрабатывать IP.Board.

Данные настройки позволяют вам настроить систему в соответствии с вашим представлением о ЧПУ. Авторы модификации смогут добавлять в данный файл записи (через интерфейс админцентра) необходимые для их модификаций и модулей.

Я ранее заметил что «template» дополнительный параметр. В случае если вы не укажете его, то IP.Board проверит все шаблоны и выберет подходящий. Но все же мы рекомендовали бы явно указывать шаблон, потому как это несколько ускоряет процесс обработки ссылок в системе.

Любые переменные, не учтенные в шаблонах, добавляются в конец URL, разделяя через символ подчеркивания, например, так:

http://www.board.com/forums/topic/99/my-test-topic/_/view/getNewPost

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

Мы надеемся, что реализация данного популярного запроса поможет вам сделать более SEO форум и сделать общие ссылки более приятными!

Back to top button