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

Скачать IP.Board 3

Наконец-то, дружественные 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 форум и сделать общие ссылки более приятными!


Отправить статью в Twitter
1 звезда2 звезды3 звезды4 звезды5 звезд
1 голосов, средний: 5.00
Loading ... Loading ...
Russian flag   Italian flag   Chinese (Traditional) flag   Portuguese flag   English flag   German flag   French flag   Spanish flag   Japanese flag   Arabic flag   Greek flag   Dutch flag   Bulgarian flag   Czech flag   Croat flag   Danish flag   Finnish flag   Hindi flag   Polish flag   Rumanian flag   Swedish flag   Norwegian flag   Catalan flag   Filipino flag   Hebrew flag   Indonesian flag   Latvian flag   Lithuanian flag   Slovak flag   Ukrainian flag   Vietnamese flag   Albanian flag   Estonian flag   Galician flag   Maltese flag   Turkish flag   Hungarian flag   
IP.Board Моды IP.Board 2.2.x-2.3.x Моды IP.Board 3.x.x Компоненты IP.Board Скины IP.Board 2.2.x
Скины IP.Board 2.3.x Скины IP.Board 3.0.x RIP'ы Скинов IP.Board 3.0.x Скины Админки IP.Board 2.3.x
Русский Язык для IP.Board php-Fusion Моды php-Fusion 6 Моды php-Fusion 7 Русский Язык для php-Fusion
RIP'ы Скинов php-Fusion 7 Графика IP.Board, php-Fusion WordPress Плагины WordPress


                                 Rambler's Top100