Jump to main content Jump to doc navigation

Дружественные URL (ЧПУ) заменяют адреса вида index.php?id=42 на читаемые пути на основе псевдонимов ресурсов, например /about/ или /blog/my-post.

Нужны две вещи:

  1. Правила перезаписи на веб-сервере, которые направляют неизвестные пути в index.php
  2. Включённые настройки дружественных URL в MODX

1. Настройте веб-сервер

MODX Cloud: правила перезаписи уже настроены — шаг можно пропустить.

Другие серверы: выберите руководство:

  • Apache (большинство shared-хостингов, файл ht.access → .htaccess)
  • IIS (web.config и URL Rewrite)
  • nginx
  • lighttpd

Пока перезапись не работает, включение дружественных URL в MODX приведёт к 404 на «красивых» путях.

2. Включите дружественные URL в MODX

В Менеджере откройте Системные настройки (иконка шестерёнки, верхняя навигация).

Отфильтруйте по ключу friendly (или Область: Дружественные URL), затем задайте минимум:

Настройка Ключ Типичное значение По умолчанию
Использовать дружественные URL friendly_urls Да Нет
Использовать дружественный путь псевдонима use_alias_path Да (полный путь от родителей) Нет

Необязательно: friendly_urls_strict отдаёт 404 для неизвестных псевдонимов вместо подстановки заголовка страницы.

При Использовать дружественный путь псевдонима = «Нет» ресурсы ведут себя так, будто лежат в корне сайта, без учёта родительских папок.

Связанная настройка: use_frozen_parent_uris (по умолчанию Нет) делает URI дочерних ресурсов относительными к замороженному URI родителя вместо его текущего псевдонима — полезно, когда родители часто меняются.

Контейнерные ресурсы (папки) используют настройку container_suffix (по умолчанию /) вместо friendly_url_prefix / friendly_url_suffix, удалённых в пользу типов контента. Действует только для папок с HTML-типом контента.

Для нелатинских заголовков настройте транслитерацию псевдонимов (friendly_alias_translit: none (по умолчанию), iconv, iconv_ascii или именованная таблица): Транслитерация псевдонимов.

3. Добавьте base href в шаблоны

Поместите это в <head> каждого шаблона, который отдаёт HTML:

<base href="[[!++site_url]]" />

Относительные URL ресурсов будут разрешаться от корня сайта даже на вложенных путях дружественных URL.

4. Очистите кеш сайта

При сохранении этих настроек MODX сам перестраивает URI и перезагружает конфиг. Если фронтенд всё ещё отдаёт устаревшие ссылки или страницы, очистите кеш в Менеджере (или удалите core/cache/) — это же нужно после правок псевдонимов и шаблонов.

Формирование ссылок

Предпочитайте теги ссылок, чтобы URL оставались корректными при перемещении ресурсов:

<a href="[[~1]]" title="Some title">Some Page</a>

Синтаксис тегов ссылок описан на странице Ресурсы.

Необязательно: редиректы www и HTTPS

Когда ЧПУ работают, выберите один канонический хост (www или домен без www) и HTTP или HTTPS — дублирующиеся имена хостов вызывают проблемы с сессиями и SEO.

На Apache в поставляемом ht.access есть закомментированные примеры правил: раскомментируйте нужный блок и замените домен. См. руководство по Apache.

На nginx эквивалентную логику return 301 поместите в соответствующие блоки server.

См. также

Устранение неполадок: 404 на «красивых» путях

  • «Красивые» пути отдают 404, а index.php?id=42 работает → правила перезаписи отсутствуют или неверны для вашего сервера — вернитесь к шагу 1.
  • Сломались CSS/JS после включения FURL → добавьте <base href> в шаблоны (шаг 3).
  • Ссылки не изменились после включения friendly_urls → очистите кеш (шаг 4); уже сохранённые ресурсы хранят свой alias, пока вы их не отредактируете.
  • Запросы к файлам core/ отдают 404 → это ожидаемо; core/ должен оставаться закрытым (Усиление безопасности MODX).

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • JT Skaggs
  • deJaya
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$194 per month—let's make that $500!

Learn more