Страницы

Настройка ЧПУ с форумом на CMF Cotonti

Настройка ЧПУ с форумом на  CMF Cotonti
3 мин чтения
Теги: Нет тегов

Внимание! Эта инструкция только для простых сайтов на Cotonti. Если вам нужно настроить ЧПУ для фриланс-биржи, то используйте другую инструкцию.

В данной инструкции мы постараемся разобраться каким образом сделать универсальные настройки для организации красивых человекопонятных ссылок на Cotonti и при этом учесть структуру разделов сайта не только для страниц, но и для форума. Для начала необходимо убедиться, что на вашем сервере имеется расширение mod_rewrite. Обычно оно установлено на всех нормальных хостингах.

Нам понадобиться установить на сайт штатный плагин Urleditor. С его помощью можно преобразовать ссылки на сайте так как вам нужно. Мы не будем использовать стандартный ""удобный"" режим. В данном режиме все работает замечательно, все страницы имеют ссылки согласно их расположению в структуре сайта, НО в данном режиме не работает ЧПУ для форума. Поэтому нам придется немного его переделать.

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

Итак выполним следующие действия:

1. Создаем так называемый пресет-файл с нашими правилами для ссылок plugins/urleditor/preset/myconfig.dat Этот файл нужно создать с таким содержимым:

 forums    m=posts&q=&d=    forums/{forums_url_structure()}/page{$d} forums    m=posts&q=*    forums/{forums_url_structure()} forums    m=posts&id=*    forums/{forums_url_structure()} forums    m=topics&s=&d=    forums/{forums_url_structure()}/page{$d}{!$m} forums    m=topics&s=*    forums/{forums_url_structure()}{!$m} forums    c=*    forums/{$c} forums    *    forums page    m=*                        page?m={$m} page    c=system&al=*            {$al}{!$c} page    c=*&al=*                {cot_url_catpath()}/{$al} page    c=*&id=*                {cot_url_catpath()}/{$id} page    c=*                        {cot_url_catpath()} index    *                        {$_path} plug    e=tags&a=pages&t=*        {$e}/{$t}{!$a} plug    e=tags&a=*&t=*            {$e}/{$a}/{$t} plug    e=*                        {$e} users    m=details&u=*            users/{cot_url_username()} login    *                        {$_area} message    *                        {$_area} admin    m=*                        admin/{$m} admin    *                        {$_area} rss        m=*&c=*                    {$_area}/{$m}/{$c} rss        m=*&id=*                {$_area}/{$m}/{$id} rss        c=*                        {$_area}/{$c} rss        m=*                        {$_area}/{$m} *        c=*&al=*                {$_area}/{cot_url_catpath()}/{$al} *        c=*&id=*                {$_area}/{cot_url_catpath()}/{$id} *        c=*                        {$_area}/{cot_url_catpath()} *        al=*                    {$_area}/{$al} *        id=*                    {$_area}/{$id} *        *                        {$_area}

Пресет-файл устанавливает для движка правила отображения ссылок на сайте.

2. В директории system/ создаем файл functions.custom.php с кодом функции forums_url_structure() для подключения библиотеки дополнительных функций. Подключить его можно в конфиг-файле datas/config.php Для этого установите переменную:

$cfg['customfuncs'] = TRUE;

 

3. Теперь нам нужно немного дополнить файл .htaccess:

Например, изначально он содержит такие правила (у вас он может имет и другие строчки, но здесь показаны базовые, которые должны быть в любом сайте на Cotonti):

 ################ Cotonti Handy URLs for Apache #######################  # Below are the rules to be included in your main .htaccess file or httpd.conf  # Rewrite engine options Options -Indexes RewriteEngine On  # Server-relative path to Cotonti. Replace it with your path if you run Cotonti # in a subfolder RewriteBase ""/""  # Language selector RewriteRule ^(en|ru|de|nl)/(.*) $2?l=$1 [QSA,NC,NE]  # Sitemap shortcut RewriteRule ^sitemap\.xml$ index.php?r=sitemap [L]  # Admin area and message are special scripts RewriteRule ^admin/([a-z0-9]+) admin.php?m=$1 [QSA,NC,NE,L] RewriteRule ^(admin|login|message)(/|\?|$) $1.php [QSA,NC,NE,L]  # System category has priority over /system folder RewriteRule ^system/?$  index.php?rwr=system [QSA,NC,NE,L]  # All the rest goes through standard rewrite gateway RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^?]+) index.php?rwr=$1 [QSA,NC,NE,L]

Перед строчкой

 # System category has priority over /system folder

Добавляем правила для форума:

 # forums RewriteRule ^forums/([a-zA-Z0-9_./%-]+)/topic([0-9]+)/page([0-9]+)?$ index.php?e=forums&m=posts&q=$2&d=$3 [QSA,NC,NE,L] RewriteRule ^forums/([a-zA-Z0-9_./%-]+)/topic([0-9]+)?$ index.php?e=forums&m=posts&q=$2 [QSA,NC,NE,L] RewriteRule ^forums/([a-zA-Z0-9_./%-]+)/post([0-9]+)?$ index.php?e=forums&m=posts&id=$2 [QSA,NC,NE,L] RewriteRule ^forums/([a-zA-Z0-9_./%-]+)/([a-zA-Z0-9_%-]+)/page([0-9]+)?$ index.php?e=forums&m=topics&s=$2&d=$3 [QSA,NC,NE,L] RewriteRule ^forums/([a-zA-Z0-9_./%-]+)/([a-zA-Z0-9_%-]+)/?$ index.php?e=forums&m=topics&s=$2 [QSA,NC,NE,L] RewriteRule ^forums/([a-zA-Z0-9_%-]+)/?$ index.php?e=forums&c=$1 [QSA,NC,NE,L] RewriteRule ^forums/?$ index.php?e=forums [QSA,NC,NE,L]

 

4. После того как все приготовления выполнены, нужно включить наш новый набор правил в настройках плагина Urleditor. В настройках нужно выбрать ""myconfig"",

5. Если на сайте включен кэш, то его нужно очистить в разделе админки: Прочее -> Внутренний кэш.

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

 

Если ничего не вышло и сссылки не работают:

1. Очистите файл urltrans.dat или ваш пресет-файл.
2. Очистите таблицу cot_cache в базе данных (не удалять, а только очистить от данных).

Тогда ссылки вернутся в исходное состояние и можно попробовать настроить все заново.

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Информация

webitproff

Оффлайн

webitproff

Последняя авторизация: 25.03.2025 08:09

  • Страница размещена: 16.03.2025 04:02
  • Последнее обновление: 16.03.2025 04:02

CleanCot © Среда, 03 июня 2026 03:50


Версия PHP: 8.4.6
Страница создана за 0.06738 секунды

Режим совместимости: legacyMode Выключен

Версия ядра: v.0.9.26 beta / Версия БД: v.0.9.26