TorrentPier 3.0: роутинг, ЧПУ и канонические URL

Exile

Administrator
Привет.

Продолжаем серию статей о том, что появится в новой мажорной версии проекта.

Сегодня поговорим о системе URL - мы полностью переработали адресацию страниц, сделав ее человекочитаемой и дружественной к поисковикам.

Что было​

Если вы когда-нибудь обращали внимание на адресную строку TorrentPier, то видели такие URL:
Code:
/viewtopic.php?t=123
/viewforum.php?f=5
/profile.php?mode=viewprofile&u=1
Классика из эпохи phpBB2. Такие адреса работают, но поисковики их не любят, а пользователи не понимают куда ведет ссылка.

Что стало​

В версии 3.0 все основные сущности получили красивые семантические URL (ЧПУ):
СущностьБылоСтало
Главная/index.php/
Темы/viewtopic.php?t=123/threads/topic-title.123/
Форумы/viewforum.php?f=5/forums/forum-name.5/
Категории/index.php?c=2/categories/category-name.2/
Профили/profile.php?mode=viewprofile&u=1/members/username.1/
Группы/group.php?g=3/groups/group-name.3/
Настройки профиля/profile.php?mode=editprofile/settings/

Теперь по URL сразу видно куда ведет ссылка. Поисковики счастливы, пользователи довольны, ссылками не стыдно делиться. Это далеко не полный список изменений в адресах, мы переработали буквально каждую ссылку, как минимум убрав суффикс .php .

Главное - обратная совместимость​

Все старые URL на темы и форумы продолжат работать. Мы реализовали автоматические редиректы: при переходе по старому адресу пользователь автоматически попадет на новый. Все закладки, внешние ссылки, поисковая выдача - все продолжит работать. Просто обновитесь, и все заработает.

При этом:
  • GET-запросы получают 301 редирект (постоянный) - поисковики постепенно переиндексируют сайт
  • POST-запросы обрабатываются как обычно - данные форм не потеряются

Умные слаги​

Система автоматически генерирует человекочитаемые слаги из названий тем, форумов и имен пользователей. При этом поддерживается транслитерация для разных языков: кириллица, китайский, японский, корейский, арабский, иврит, греческий и другие.

Тема «Новый фильм 2025» превратится в /threads/novyj-film-2025.123/.

Если название темы изменилось - не проблема. При переходе по старому слагу произойдет редирект на актуальный. SEO-вес сохраняется.

Канонические URL​

На каждой странице - форуме, теме, профиле - теперь указан canonical URL. Поисковики понимают какой адрес считать основным и не плодят дубли в выдаче.

Что это дает​

  • SEO. Поисковики любят понятные URL с ключевыми словами
  • UX. Пользователи видят куда ведет ссылка до клика
  • Шаринг. Ссылками приятно делиться в соцсетях и мессенджерах
  • Консистентность. Все URL заканчиваются на /, автоматический редирект если без слеша

Для разработчиков​

В шаблонах появились удобные хелперы:
Code:
{{ url.thread(topic_id, topic_title) }}
{{ url.forum(forum_id, forum_name) }}
{{ url.member(user_id, username) }}
В PHP-коде:
PHP:
url()->thread($topicId, $topicTitle);
url()->forum($forumId, $forumName);
url()->member($userId, $username);
Больше не нужно склеивать строки вручную - просто вызываете метод и получаете правильный URL.

Что дальше​

Семантические URL - часть большой работы над улучшением TorrentPier. В следующих статьях расскажем о других изменениях в версии 3.0.
 
Back
Top