Системные настройки
Всё управление адресами собрано в системных параметрах: «Система» → «Системные настройки», фильтр по слову «url».
| Параметр | Значение | Что делает |
|---|---|---|
friendly_urls | Да | Включает дружественные адреса |
friendly_alias_urls | Да | Использует алиасы вместо идентификаторов |
use_alias_path | Да | Строит путь по вложенности контейнеров |
container_suffix | / | Слэш в конце адресов контейнеров |
Параметр use_alias_path — ключевой. При выключенном значении все страницы окажутся в корне сайта независимо от структуры дерева ресурсов.
Файл .htaccess
Как и в других системах, дружественные адреса требуют правил переписывания. В корне сайта должен лежать .htaccess — в дистрибутиве он поставляется как ht.access и требует переименования.
Проверка простая: включили настройки, открыли внутреннюю страницу. Ошибка 404 при работающей главной означает, что файл не переименован или mod_rewrite не активен.
Алиас ресурса
Поле «Псевдоним» на вкладке настроек ресурса — это и есть текстовая часть адреса. При создании ресурса система заполняет его из заголовка.
Важная деталь: базовая установка MODX не транслитерирует кириллицу. Заголовок «Садовые качели» даст алиас с русскими буквами, а адрес превратится в процентный код — ситуация, разобранная в статье про кириллицу в URL.
Решается это дополнением транслитерации, которое ставится через менеджер пакетов. После установки проверьте, по какой таблице оно работает: у большинства расширений схема настраивается в системных параметрах.
Контроль качества. Создайте тестовый ресурс с заголовком «Щётки и ёршики» и посмотрите на алиас. Ожидаемый результат — shhetki-i-ershiki. Расхождение означает, что дополнение использует чужую таблицу.
Контейнеры и вложенность
Путь строится из алиасов родительских ресурсов, у которых включён флаг «Контейнер». Дерево ресурсов напрямую превращается в структуру адресов.
Дерево ресурсов: Адрес:
Каталог (контейнер) /catalog/
Диваны (контейнер) /catalog/divany/
Милано-2 /catalog/divany/milano-2.html
Отсюда правило: прежде чем наполнять сайт, продумайте дерево. Перенос ресурса в другого родителя меняет его адрес, и для проиндексированных страниц потребуется 301-редирект.
Суффиксы
В MODX два независимых параметра. container_suffix задаёт окончание адресов контейнеров — обычно слэш. Расширение обычных ресурсов задаётся в настройках шаблона документа, по умолчанию .html.
Их можно комбинировать как угодно, но комбинация должна быть единой на всём сайте, иначе появятся дубли. Про выбор формата слэша есть отдельный разбор.
Типовые ошибки
- Кириллица в алиасе. Признак того, что дополнение транслитерации не установлено или отключено для этого контекста.
- Дублирующиеся алиасы. Система добавляет числовой суффикс, и появляется
divan-2вместо осмысленного адреса. - Слишком глубокое дерево. Пять уровней контейнеров дают пять сегментов в адресе — о разумных пределах в статье про вложенность URL.
- Перенос ресурсов без редиректов. Смена родителя меняет адрес молча.
- Разные суффиксы у соседних страниц из-за настроек шаблона.
Проверка после настройки
- Откройте ресурсы с трёх уровней вложенности — пути соответствуют дереву.
- Алиасы латиницей, спорные буквы записаны по таблице Яндекса.
- Адрес с идентификатором вида
?id=42отдаёт 301 на дружественный. - Суффиксы единообразны по всему сайту.
- В карте сайта только дружественные адреса.
Контексты и мультидомены
MODX позволяет держать несколько сайтов в одной установке через контексты. Каждый контекст имеет собственные настройки адресов, и это частая причина неожиданного поведения.
Если у основного сайта дружественные адреса работают, а у второго домена нет — проверьте настройки именно его контекста: параметры friendly_urls и use_alias_path задаются для каждого отдельно, а системное значение служит лишь значением по умолчанию.
Кеш и обновление адресов
Система хранит карту соответствия адресов и ресурсов в кеше. После массового изменения алиасов или переноса ресурсов часть ссылок может вести на старые адреса, пока кеш не обновлён.
Порядок действий после структурных правок:
- Очистить кеш из панели управления.
- Проверить несколько изменённых страниц.
- Убедиться, что внутренние ссылки в меню обновились.
- Пересобрать карту сайта, если она формируется дополнением.
Ссылки в контенте стоит ставить через тег ресурса, а не абсолютным адресом: тогда при смене алиаса они обновятся автоматически.
Частые вопросы
Почему в MODX алиас остаётся кириллическим?
Базовая установка не транслитерирует заголовки. Нужно поставить дополнение транслитерации через менеджер пакетов и проверить, по какой таблице оно работает.
За что отвечает параметр use_alias_path?
За построение пути по вложенности контейнеров. Если его выключить, все страницы будут доступны из корня сайта независимо от дерева ресурсов.
Что произойдёт при переносе ресурса в другой раздел?
Адрес изменится вместе с путём родителя. Для проиндексированной страницы понадобится 301-редирект со старого адреса.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.