меню

Частая ошибка! Для правильного отображения ссылок в head сайта нужно прописать базовый URL примерно вот так:

  
<base href="http://site_name.ru" />    
  

Настройки сайта для формирования ЧПУ

  1. Заходим в Системные настройки (System settings) и выбираем Friendly URLs в фильтре слева.

    Настройка ЧПУ и htaccess для MODX Revolution

  2. Ставим "Нет" в автоматическую генерацию ЧПУ (Automatic alias - No) и "Да" в использовать ЧПУ (friendly_urls - Yes), "Да" в Использовать ЧПУ в путях псевдонимов (use_alias_path - Yes)

    Настройки сайта для формирования ЧПУ

  3. Для автоматической генерации псевдонимов (Алиасов) из русского (или другого языка) в псевдоним, состоящих из латинских букв, устанавливаем дополнение Translit http://modx.com/extras/package/translit

  4. Скачиваем из гитхаба последнюю версию .htaccess для MODx Revolution по этой ссылке

  5. Переименовываем в .htaccess данный файл и заливаем на хостинг в корневую папку. Предварительно нужно внести в этот файл некоторые изменения (см. ниже).

.htaccess для MODX Revolution

Что такое .htaccess - говоря по-простому, то это файл, который содержит набор правил переименования запросов (URL) к вашему сайту.

На что стоит обратить внимание в данном файле:

  1. Если ваша MODx директория находится в public_html, то правило.

          
    <IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /
    </IfModule>
          
        

    Оставляем без изменения, если используете поддиректорию subdirectory, то правило будет выглядеть так.

          
    <IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /subdirectory/
    </IfModule>
          
        

    Здесь, думаю, всё понятно.

  2. Ваш сайт может иметь только одно имя www.sitename.com или sitename.com без www. Так как поисковые системы воспринимают данные два сайта как абсолютно разные. Поэтому необходимо определится с основным доменном и ввести в .htaccess правило для него:

    Для сайта без www

          
    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
    RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
          
        

    Для сайта c www

          
    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} !^www\.example-domain-please-change\.com [NC]
    RewriteRule (.*) http://www.example-domain-please-change.com/$1 [R=301,L]
          
        

    Не используйте эти два правила одновременно!

  3. После того, как вы указали правило для основного домена, желательно указать для Google какой ваш домен является основным. Панель Google для вебмастеров

    Google для вебмастеров

  4. Непосредственно само правило перезаписи URL в ЧПУ содержится в следующих строчках.

          
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
          
        
  5. Далее в файле .htaccess взятом с гитхаба (см. ссылку выше) идут дополнительные настройки-правила (для файлов разных типов, сроков изменения и т.д.), особенности использования которых можете узнать по ссылкам в комментариях. Я использую этот файл как есть, без дальнейших изменений.

Использование кеша браузера

Чтобы браузер сохранял уже загружаемые ресурсы (JS, изображения, вебшрифты) нужно в htaccess файле указать время хранения этих файлов. Вставьте в ваш .htaccess следующий код:

  
<IfModule mod_expires.c>
  ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
  ExpiresDefault                          "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
  ExpiresByType text/cache-manifest       "access plus 0 seconds"

# your document html 
  ExpiresByType text/html                 "access plus 0 seconds"
  
# data
  ExpiresByType text/xml                  "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType application/json          "access plus 0 seconds"

# rss feed
  ExpiresByType application/rss+xml       "access plus 1 hour"

# favicon (cannot be renamed)
  ExpiresByType image/x-icon              "access plus 1 week" 

# media: images, video, audio
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType image/jpg                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"
  ExpiresByType video/ogg                 "access plus 1 month"
  ExpiresByType audio/ogg                 "access plus 1 month"
  ExpiresByType video/mp4                 "access plus 1 month"
  ExpiresByType video/webm                "access plus 1 month"
  
# webfonts
  ExpiresByType font/truetype             "access plus 1 month"
  ExpiresByType font/opentype             "access plus 1 month"
  ExpiresByType font/woff                 "access plus 1 month"
  ExpiresByType image/svg+xml             "access plus 1 month"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
    
# css and javascript
  ExpiresByType text/css                  "access plus 2 months"
  ExpiresByType application/javascript    "access plus 2 months"
  ExpiresByType text/javascript           "access plus 2 months"

</IfModule>
  

Файл ROBOTS.TXT

Хотя это и не являлось темой этого урока, решил всё же разместить здесь содержимое файла robots.txt для MODx Revolution. Файл содержит правила для поисковых роботов.

Этот файл запрещает (разрешает) индексирование-посещение поисковыми роботами файлов из указаных в нём директорий.

Содержимое моего robots.txt:

  
User-agent: *
Disallow: /manager/
Disallow: /assets/components/
Disallow: /core/
Disallow: /mgr/
Disallow: /connectors/
Disallow: /index.php
Disallow: *?
Host: site_name.ru
Sitemap: http://site_name.ru/sitemap.xml
  

Не забудьте поменять site_name.ru на название своего основного хоста.


Возможно, вам будет интересно

Документация по pdoMenu

pdoMenu - сниппет генерации меню. Может заменять Wayfinder, и позволяет более гибко указывать параметры. Например, умеет строить меню сразу из нескольких родителей, отображая их как вместе, так и отдельными ветками.

RESTful API в MODX Rrevolution

В MODX 2.3 был замечен удобный способ разработки API-интерфейсов RESTful поверх MODX. Это делается с поддержкой класса modRestService и производных modRestController. Он поддерживает большое количество интересных функций для взаимодействия с экземплярами xPDOObject.

Документация по pdoCrumbs

Сниппет для построения навигации в стиле хлебных крошек. Хорошо заменяет сниппет BreadCrumb в MODx, работает с документами из любых контекстов и позволяет указывать различные условия для выборки ресурсов.

Условия в MODx Revo сниппет IF

Условный логический сниппет, обеспечивающий выполнение условных выражений в MODx. Вы можете загрузить ПО с помощью менеджера MODx Revolution, используя Package Management, или из хранилища дополнений MODx Revo.

Оформление заявки

Документы на создание сайта

Изучите наше коммерческое предложение, заполните БРИФ и отправьте его на почту maxidebox@list.ru. Изучив все пожелания из БРИФ-а, обратным ответом оповестим Вас по стоимости разработке, ответим на вопросы.

КП на создание сайта Коммерческое предложение на созданеи сайта

Мы берем на себя ответственность за все стадии работы и полностью избавляем клиентов от забот и необходимости вникать в тонкости.

Скачать БРИФ (акета) на создание сайта Скачать БРИФ (акета) на создание сайта

Зополните у БРИФ-а все необходимые поля. Сделайте краткое описание к каждому из пунктов анкеты, привидите примеры в соответсвующий пунктах - это позволит лучше понять Ваши ожидания и требования к сайту