Пн-Пт 9:00 - 18:00 Сб-Вс 10:00 - 16:00

Первоначальная настройка MODx

Информации о первоначальной настройке очень много, по сути это дублирование имеющейся, но однажды просто надоедает искать в той же подборке и повторять вроде одно и то же, позже замечая что в том то который делался тогда-то и тогда-то реализация была более верной. Поэтому впервую очередь пишу для себя чтобы не искать и не повторять в каждый раз немного по разному.
Установку мы пропустим они как правило похожи, и дабы не плодить очередной опус, о том что уже расписано и опубликовано просто укажу ссылку, на лучшую с моей точки зрения инструкцию.

Установка пакетов


Первым шагом мы установим необходимые компоненты из официального репозитория:
  1. sdStore — для подключеня репозитория от modstore.pro, после установки необходимо зарегистрироваться и получить ключ для установки компонентов из магазина modstore.pro.
  2. tinyMCE — текстовый редактор для ресурсов.
  3. FormIt — для отправки писем с сайта.
  4. Translit — транслитерация URL-адресов.
  5. Filetranslit — транслитерация наименования загруженного файла.
  6. MIGX — дополнение для мульти TV-параметров.
  7. ClientConfig — конфигурация сайта.
  8. Ace — редактор кода с поддержкой Emmet (репозиторий modstore.pro).
  9. frontendManager — управление сайтом контент-менеджером (репозиторий modstore.pro).
  10. MetaX — сниппет для генерации мета-тэгов (репозиторий modstore.pro).
  11. modLastModified — плагин для отправки браузеру заголовка Last-Modified и, если браузер спросит If modified since — ответа 304 Not Modified.
  12. phpThumbOf — ресайзер картинок.
  13. SEO Pro — дополнение, которое считает сколько символов введено в поля title, longtitle и description, также добавляет свое поле Фокусные ключевые фразы.
  14. SEO Tab — Управление SEO на сайте, индексация, алиасы sitemap и прочие плюшки.
  15. simpleUpdater — система обновления MODx-а.
  16. tagLister — понадобится для создания ключевых слов.
  17. FormIt — для отправки писем с сайта.
  18. pdoTools — набор утилит на все случаи разработки сайта (репозиторий modstore.pro).
  19. ajaxForm — для AJAX отправки форм с сайта (репозиторий modstore.pro).

Источник файлов для контента


Создаем каталог для наших; картинок, документов, видео, аудио — файлов и пр.
создание каталога
В данном случае это папка files в папке assets.
Далее переходим в раздел Медиа -> Источники файлов и нажимаем кнопку Создать новый источник файлов.
новый источник
и заполняем примерно так.
пример заполнения
и нажимаем сохранить.
Теперь у нас в списке источников фалов появилась новая запись files. Нажмем на ней правой кнопкой мыши и выберем пункт меню Редактировать.
начать редактирование
На открывшейся странице представлены параметры настройки для созданного нами нового источника файлов. Отредактируем некоторые из них.
Для параметров basePath и baseUrl указываем путь к созданной выше директории, где планируется хранить наши медиа-файлы — assets/files/, обязательно с слешем в конце иначе будут недоступны.
Кроме того, для параметра allowedFileTypes и imageExtensions укажем строку с перечисленными в ней расширениями файлов, которые будут разрешены для загрузки через новый источник — docx,xlsx,pdf,jpg,jpeg,png,gif,svg (в нашем случае добавляем docx,xlsx,pdf).
настройки источника
Проделав все вышесказанное сохраняем настройки путем нажатия на кнопку «Сохранить» в верхнем правом углу.
Новый источник файлов создан и в дальнейшем мы назначим его источником по умолчанию. Кстати, запомним название созданного источника — «files», оно понадобиться, когда будут редактироваться системные настройки.

Изменение системных настроек


Итак авторизовавшись в админке MODx-а и нажав верхнем, левом углу на шестеренку и выбрав системные настройки перейдем к настройкам MODx-а.
открытие настроек
Все настройки сгруппированы по компонентам и разделам, начнем с основного core для упрощения их поиска вводим следующие запросы в поле поиска и выставляем их значения:
поле поиска

Раздел «Авторизация и безопасность»

  1. allow_multiple_emails (Разрешить пользователям использовать один адрес электронной почты) — нет, чтобы у каждого пользователя была своя электронная почта

Раздел «Дружественные URL»

  1. automatic_alias (Автоматически генерировать псевдоним) — Да, для того чтобы при создании нового документа алиас к нему генерировался из заголовка.
  2. container_suffix (Суффикс контейнера) — очищаем
  3. friendly_alias_max_length (Максимальная длина псевдонима) — 70, более 70 символов не имеет смысла слишком длинный адрес страницы
  4. friendly_alias_translit (Транслитерация псевдонимов) — russian, для того чтобы генерировались алиасы транслитом.
  5. friendly_urls (Использовать дружественные URL) — Да
  6. friendly_urls_strict (Строгий режим дружественных URL) — Да
  7. global_duplicate_uri_check (Проверять на дублирование URI во всех контекстах) — Да, обязательно для исключения дублирования псевдонимов.
  8. use_alias_path (Использовать вложенные урлы) — Да, ссылки будут типа site.ru/blog/hello.html

Раздел «Словарь и язык»

  1. fe_editor_lang (Язык текстового редактора во фронтенде сайта) — ru
  2. locale (Локаль) — ru_RU.utf8

Раздел «Система управления»

  1. default_media_source (Источник файлов по умолчанию) — files, смотрим выше
  2. manager_date_format (Формат даты в системе управления) — d-m-Y, можно сменить на наш, родной, день-месяц-год
  3. manager_time_format (Формат времени в системе управления) — H:i:s, вывод в более приятном формате: 08:25:56
  4. manager_week_start (Первый день недели) — 1, у нас принято начинать неделю в понедельник.
  5. resource_tree_node_name (Поле для названия узла в дереве ресурсов) — menutitle, чтобы названия ресурсов в дереве были покороче.
  6. resource_tree_node_tooltip (Поле подсказки для ресурса в дереве ресурсов) — alias, делается для того, чтобы можно было понять, какой у ресурса адрес, вместо расширенного заголовка.
  7. tvs_below_content (Разместить TV ниже контента) — Да, так удобнее.
  8. welcome_screen (Показывать окно приветствия) — Нет.

Раздел «Сайт»

  1. error_page (Страница ошибки 404) — здесь вбивается id документа, который является той самой страницей. В каждом случае он свой, я предпочитаю создать новый ресурс и по умолчанию он становится 2. Для того чтобы не выводился в меня активируем чекбокс Скрыть из меню.
  2. hidemenu_default (Скрыть из меню по умолчанию) — Да, чтобы случайно новые ресурсы не появились в основном меню сайта.
  3. link_tag_scheme (Схема URL) — -1 (минус 1), по умолчанию для сайтов с http, для сайтов с https оставляем 1.
  4. publish_default (Публиковать по умолчанию) — Да, чтобы при создании новых страниц сайта галочка «Опубликован» по умолчанию стояла, если оставить нет, то каждый созданный ресурс необходимо активировать для его публикации.
  5. site_name (Название сайта) — меняем на свое наименование, например Магазин интересных товаров.
  6. site_unavailable_message (Сообщение о недоступности сайта) — вместо версии на английском можно вставить следующее Сайт находится на техническом обслуживании. Пожалуйста, зайдите чуть позже.
  7. site_unavailable_page (Страница ошибки 503 «Сайт недоступен») — id страницы 404, лучше использовать страницу 404, чем главную.
  8. unauthorized_page (Страница ошибки 401 «Доступ запрещен») — id страницы 404, лучше использовать страницу 404, чем главную.

Раздел «Система и сервер»

  1. feed_modx_news_enabled (Отображение RSS-канала «Новости MODX») — Нет, отключаем Новости MODx на главной странице админки, в зависимости от предпочтений можно не отключать.
  2. feed_modx_security_enabled (Отображение RSS-канала «Уведомления безопасности MODX») — Нет, отключаем Уведомления безопасности MODX на главной странице админки, в зависимости от предпочтений можно не отключать.
  3. log_deprecated (Устаревшие функции в журнале ошибок) — Нет, чтобы убрать лишние и никому не нужные ошибки из лога.
  4. send_poweredby_header (Отправлять заголовок X-Powered-By) — Нет, для повышения безопасности, MODx не будет уведомлять о том на каком движке создан сайт.
  5. server_protocol (Тип сервера) — https, если у вас установлен ssl сертификат, если его нет, то оставляем как есть http.
Переходим к разделу Ace
  1. ace.font_size (Размер шрифта) — 16px, с таким размером шрифта лучше
  2. ace.show_invisibles (Невидимые символы) — Да, отображние скрытных символов, пробелы, табы и т. д.
  3. ace.soft_tabs (Мягкая табуляция) — Нет, с жесткой приятнее
  4. ace.tab_size (Размер табуляции) — 2, шаг отступа
  5. ace.theme (Тема редактора) — monokai, выбор за пользователем, это как фломастеры, потыкать для выбора можно здесь ace.c9.io/build/kitchen-sink.html
Переходим к разделу Ace
  1. ace.font_size (Размер шрифта) — 16px, с таким размером шрифта лучше
  2. ace.show_invisibles (Невидимые символы) — Да, отображние скрытных символов, пробелы, табы и т. д.
  3. ace.soft_tabs (Мягкая табуляция) — Нет, с жесткой приятнее
  4. ace.tab_size (Размер табуляции) — 2, шаг отступа
  5. ace.theme (Тема редактора) — monokai, выбор за пользователем, это как фломастеры, потыкать для выбора можно здесь ace.c9.io/build/kitchen-sink.html
Переходим к разделу seopro
  1. seopro.fields (Fields where SEO Pro will work on) — pagetitle:70,longtitle:70,description:155,introtext:255,alias:2023,menutitle:2023, длину некоторых полей лучше ограничить.
  2. seopro.usesitename (Display sitename in the Google/Yandex Preview and add it to the SEO Pro title placeholder [[+seoPro.title]]?) — Нет, будем реализовывать иначе
Подтверждение изменений или сохранение параметров не требуется, все происходит автоматически.

Создание robot.txt


Создаем через файловый менеджер MODx-а, Filezill-у или средствами хостинга например CPanel файл robots.txt его содержимое ниже:
User-agent: *
Disallow: /assets/
Disallow: /search?*
Disallow: /index.php
Disallow: *?
Disallow: *?*
Disallow: *utm*=
Disallow: *openstat=
Disallow: *from=
Allow: /assets/*.jpg
Allow: /assets/*.jpeg
Allow: /assets/*.gif
Allow: /assets/*.png
Allow: /assets/*.pdf
Allow: /assets/*.doc
Allow: /assets/*.docx
Allow: /assets/*.xls
Allow: /assets/*.xlsx
Allow: /assets/*.ppt
Allow: /assets/*.pptx
Allow: /assets/*.js
Allow: /assets/*.css
Allow: *?page=
Allow: /core/cache/phpthumb/*.jpeg
Allow: /core/cache/phpthumb/*.png
Allow: /core/cache/phpthumb/*.svg
Host: [[++site_url]]
Sitemap: [[++site_url]]sitemap.xml

Создание sitemap.xml


Для создания страницы sitemap.xml создадим ресурс и в заголовке укажем sitemap.xml, в поле Содержимое введем [[!StercSeoSiteMap]] в расширенном заголовке и описании можно написать например Карта сайта sitemap, оставляем галочки на Скрыть из меню и Опубликован. Шаблон выбираем Пустой шаблон
Далее открываем Настройки и снимаем галки с Использовать HTML-редактор и Кэшируемый, сли еще что-то активно отключаем все кроме Очистить кэш. В тип содержимого выбираем XML.
Далее открываем SEO и в поле Участие страницы во внутреннем поиске по сайту выбираем Нет, исключить эту страницу из внутреннего поиске по сайту. Перейдя на видимость и в поле Включение страницы в Sitemap.xml переключаем на Нет, скрыть эту страницу в Sitemap.xml и не забывая нажать кнопку сохранить пробуем открыть страницу sitemap-а site.ru/sitemap.xml

Изменяем .htaccess


Далее переименовываем файлы ht.access, manager/ht.access и core/ht.access каждый из них в .htaccess, для исправления ошибки с Каталог ядра в открытом доступе
картинка ошибки
как правило достаточно переименовать файлы ht.access, manager/ht.access и core/ht.access каждый из них в .htaccess, но иногда необходимо удалить или переименовать файл /core/docs/changelog.txt.
Мой вариант .htaccess.
RewriteEngine On
RewriteBase /
#Редирект на HTTPS:
#RewriteCond %{HTTPS} =off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

#Редирект С www на БЕЗ www:
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#Редирект с БЕЗ www на С www. !НЕ используйте одновременно с "Редирект С www на БЕЗ www":
#RewriteCond %{HTTP_HOST} ^([^www].*)$
#RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

#Редирект с http://site.com/index.html и http://site.com/index.php на http://site.com:
#RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
#RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,L]

# Избавляемся от завершающего слеша
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*)/
RewriteRule ^(.*)/$ /$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

php_flag zlib.output_compression On
php_value zlib.output_compression_level 5

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

FileETag MTime Size
<ifmodule mod_expires.c>
  <filesmatch "\.(jpg|gif|png|css|js)$">
       ExpiresActive on
       ExpiresDefault "access plus 1 year"
  </filesmatch>
</ifmodule>

Написать комментарий

Ваш email не будет опубликован. Обязательные поля отмечены символом *

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

ЕСТЬ ВОПРОСЫ ?

Оставьте их нам, и мы их решим

Свяжитесь с нами