Настройка ЧПУ в MODX состоит из нескольких шагов.
Переименовываем файл ht.access
В корневой папке сайта лежит файл ht.access переименуйте его в .htaccess. Сделать это можно по FTP / SFTP или через файловый менеджер хостинга. Из под админки по умолчанию вы переименовать его не сможете, не внеся настройку в upload_files.
Установка пакета для транслитерации
Установите из основного репозитория дополнение транслитерации: translit. Как устанавливать пакеты смотрите в уроке: Установка необходимых дополнений (пакетов).
Системные настройки MODX — Дружественные URL
Идем в «Системные настройки», на открывшейся странице в фильтре выбираем «Дружественные URL». Далее находим следующие пункты и выставляем соответствующие значения:
- Максимальная длина псевдонима — friendly_alias_max_length — 70 (большее 70 символов получается слишком длинный адрес страницы).
- Создавать ЧПУ-псевдоним (так называемые «дружественные URL») «на лету» — friendly_alias_realtime — Да (генерирует псевдоним в реальном времени).
- Метод фильтрации символов в псевдонимах — friendly_alias_restrict_chars — alphanumeric (чтобы у псевдонима вырезалось все кроме букв и цифр).
- Шаблон для фильтрации символов в псевдонимах — friendly_alias_restrict_chars_pattern — /[\0\x0B\t\n\r\f\a&=+%#<>»~:`@\?\[\]\{\}\(\)\,\|\^’\\]/
- Транслитерация псевдонимов — friendly_alias_translit — russian.
- Использовать дружественные URL — friendly_urls — Да (включаем URL вида /o-nas.html или /about-us.html (транслитерация псевдонимов), а не параметрические, вроде /index.php?p=3 (для поддержки опции на некоторых хостингах нужны соответствующие настройки веб-сервера Apache в файле .htaccess или в конфиг-файле Nginx).
- Строгий режим дружественных URL — friendly_urls_strict — Да.
- Проверять на дублирование URI во всех контекстах — global_duplicate_uri_check — Да (для мультиязычных сайтов Нет).
- Использовать вложенные URL — use_alias_path — Да (это для вложенной структуры, пример: modx3.com/blog/name-statya, если поставите Нет, то будет просто modx3.com/name-statya).
- Настройку Использовать «замороженные» URI родителя — use_frozen_parent_uris — любой (по желанию).
Вот пример всех настроек со вложенной структурой):
Чтобы ссылки работали только в ЧПУ-виде через редирект и не открывались по ссылкам вида https://site.ru/index.php?id=7
В принципе все! У нас сейчас ЧПУ вида /o-kompanii.html.
Не работают дружественные url? Не забываем про требования к серверу:
На сервере (Apache) должна быть включена функция Mod_Rewrite.
Дополнительно: настройка базового URL
Кто идет последовательно по урокам из документации — вам данный шаг делать пока что не нужно — сделаем во время натяжки шаблона.
Проверьте стоит ли у вас в шаблонах (или чанке) в секции head параметр <base href="">
:
<head>
<base href="[[!++site_url]]">
...
</head>
Если его нет пропишите — без него будут проблемы с дублированием URL относительно текущей страницы и при переходе на другую страницу.
Для того чтобы из URL адреса убрать .html, нужно зайти в основном меню в «Содержимое» — «Типы содержимого» и удаляем расширение .html.
Потом если сайт боевой (со страницами) обновляем кэш сайта и обновляем URL ссылки (управление – очистить кэш).