Система ЧПУ Система ЧПУ

Немного примеров создания правил. Основы системы ЧПУ (Человеко-понятные урл))

Для создания красивых и понятных ссылок в COTONTI есть отличная система создания ссылок ЧПУ.

Это нововведение очень полезно для SEO оптимизации сайтов, и для пользователя ссылки становятся более понятными.

Давайте рассмотрим несколько примеров создания правил для системы ЧПУ.

Для того, что бы ваши ссылки стали вида:
www.site/page/defecit_time.html вместо www.site/page.php?al=defecit_time (с алиасом)
или
www.site/page/345.html вместо www.site/page.php?id=345 (по id)

Для таких преобразований нужно прописать правила в движке в Администрировании => Модули => ссылки

Заходим и видим таблицу:
Модули - собственно список модулей движка.

Параметры - тут надо прописать переменные, используемые модулем (к примеру, page использует переменную $id - ID страницы и $al Алиас или псевдоним страницы).

Формат - какой формат ссылки вы хотели бы иметь.

Нажимаем Новое правило и добавляем правила.

К примеру, давайте возьмем модуль PAGE (Использует переменные $id -id страницы и $al - алиас страницы - псевдоним.)
Пример:
 

Модули                    Параметры                                      Формат
 page                           id=*                                        page/{$id}.shtml
 page                           al=*                                        page/{$al}.html


Эти правила прописываются в файл datas/urltrans.dat. Не советую эти правила прописывать напрямую в этот файл! Так как вы зададите только исходящие ссылки, но внешние приниматься не будут - нет преобразования в .htaccess. Обязательно ставим галочку Перезаписать .htaccess? и жмем сохранить!

В результате работы ЧПУ наши ссылки станут вида:
www.site/page/defecit_time.html
www.site/page/345.html

Теперь изменим правила:

 

Модули                    Параметры                                      Формат
 page                           id=*                                        page_{$id}.shtml
 page                           al=*                                        page_{$al}.html


В результате работы ЧПУ наши ссылки станут вида:
www.site/page_defecit_time.html
www.site/page_345.html

Для LIST:

 

 

 

Модули                    Параметры                                      Формат
 list                           c=*                                        list/{$c}.html

 


Теперь запись в .htaccess будет преобразовывать входящие ссылки,а движок создавать исходящие в соответсвии с правилами ЧПУ!

Теперь давайте посмотрим правила для форума.
Модуль FORUM (Используемые переменные: $m - posts или topics ; $s - номер topics; $q - номер posts)

Пример:

Модули                    Параметры                                      Формат
 forums                          m=posts&q=*                                 {$m}/{$q}.html
 forums                          m=*&s=*                                     {$m}_{$s}.html


или

Модули                    Параметры                                      Формат
 forums                         m=posts&q=*                             forums/{$m}/{$q}.html
 forums                         m=*&s=*                                 forums/{$m}_{$s}.html


В результате работы ЧПУ наши ссылки станут вида:
www.site/posts/17.html
www.site/topics_15.html

и

www.site/forums/posts/17.html
www.site/forums/topics_15.html

Зная какие переменные использует данный модуль, можно создавать ссылки на Ваш вкус.

P.S. Многие плагины не используют функцию движка для создания ссылок, а используют вручную прописанные ссылки типа page.php?id=$id. Естественно они будут выдавать ссылки не по правилам ЧПУ. Необходима замена в плагинах строк задающих ссылки. Все ссылки должны создаваться через встроенную функцию движка sed_url.

Удачи....

 

 



1. Sergeich  23. Mai 2009, 21:00
Спасибо, хоть немного этот тёмный лес просящаться стал. С виду всё не сложно :). А выявлены ли какие-то косяки? Также очень интересует что конкретно нужно менять в плагинах, чтобы задействовать модуль ЧПУ Котонти (желательно на примере какого нить плагина).
2. Dr2005alex  24. Mai 2009, 01:30
Ну к примеру плагин news_mod

кусок кода создания ссылки на новость:

$pag['page_pageurl'] = (empty($pag['page_alias'])) ? "page.php?id=".$pag['page_id'] : "page.php?al=".$pag['page_alias'];

его меняем на :

$pag['page_pageurl'] = (empty($pag['page_alias'])) ? sed_url('page', "id=".$pag['page_id']) : sed_url('page', "al=".$pag['page_alias']);

И ЧПУ подхватывает !
3. Yusupov  24. Mai 2009, 16:45
настроил ЧПУ по вашей инструкции. Проблема: не отображаются кнопки редактора bbcode. Как исправить?
4. Dr2005alex  24. Mai 2009, 18:08
хм... действительно конфликт с тэгами и маркитапом!

не использовать такое правило

list c=* {$c}/

лучше так

list c=* {$c}.html

Админы уберите эту строку в статье!
5. ssergo  25. Oktober 2009, 07:04
Вы можете также использовать параметризированные поддомены, если укажете абсолютную ссылку вида: http://{$c}.site.com/{$al}.html. На данный мамент поддомены поддерживаются только для серверов Apache.


Кто подскажет, как правильно прописать?
6. Killer  25. Oktober 2009, 22:38
Как сделать ЧПУ, как на этом сайте?
Ну максимум сделал похожую для page, только в конце стоит слеш
здесь так http://www.cotonti.com/docs/ru/admin/url_chpu
а у меня так page/{$al}/ http://www.cotonti.com/docs/ru/admin/page/url_chpu/ это алиас.
по id так page/{$id}/ http://www.cotonti.com/docs/ru/admin/page/25/ если в формате убираем слешь в конце, то убивается ссылка. Как настроить правильно?
Для list сделал list/{$c}/ http://www.cotonti.com/cotonti/list/news/ - так работает. а если формат {$c}/ то убивает вывод тегов на главной.
Для users не получается сделать как тут. Получает вот что
page u=* users/{$u}/ http://www.cotonti.com/cotonti/users/admin/?m=details&id=1
ссылка работает, но не человеческая она. :D
Подскажите как настроить.:)
7. Killer  25. Oktober 2009, 22:51
Для page щас настроил так
page al=* {$c}/{$al}/
получилась такая ссылка http://www.cotonti.com/docs/url_chpu/
Но зато убило http://www.cotonti.com/docs/ - неправильный урл.
Запутался ёпт. Почему одно убивает другое?
8. ssergo  29. Oktober 2009, 02:30
Как сделать ЧПУ, как на этом сайте? ( Posted by Killer )
Запрыгни - сюды.
Nur registrierte Benutzer können Kommentare schreiben