Для правильного відображення посилань в head сайту потрібно прописати базовий URL приблизно ось так: <base href = "https://modx.ws/" />
Налаштування сайту для формування ЧПУ
- Заходимо в Системні налаштування (System settings) і вибираємо Friendly URLs в фільтрі зліва.
- Ставимо "Ні" в автоматичну генерацію ЧПУ (Automatic alias - No) і "Так" в використовувати ЧПУ (friendly_urls - Yes), "Так" в Використовувати ЧПУ в шляхах псевдонімів (use_alias_path - Yes)
- Для автоматичної генерації псевдонімів (АЛІАС) з російського (або іншої мови) в псевдонім, що складаються з латинських букв, встановлюємо додаток Translit http://modx.com/extras/package/translit
- Викачуємо з гітхаба останню версію .htaccess для MODx Revolution по цим посиланням
- Перейменовуємо в .htaccess даний файл і заливаємо на хостинг в кореневу папку. Попередньо потрібно внести в цей файл деякі зміни (див. Нижче).
.htaccess для MODX Revolution
Що таке .htaccess - кажучи по-простому, то це файл, який містить набір правил перейменування запитів (URL) до вашого сайту.
На що варто звернути увагу в даному файлі:
- Якщо ваша 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>
Тут, думаю, все зрозуміло.
- Ваш сайт може мати тільки одне ім'я 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]
для сайту з 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]
Не використовуйте ці два правила одночасно!
- Після того, як ви вказали правило для основного домену, бажано вказати для Google який ваш домен є основним. Панель Google для веб-майстрів
- Безпосередньо саме правило перезапису URL в ЧПУ міститься в наступних рядках:
RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule ^ (. *) $ Index.php? Q = $ 1 [L, QSA]
- Далі в файлі .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 (can not 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 для MODx Revolution. Файл містить правила для пошукових роботів.
Цей файл забороняє (дозволяє) індексування-відвідування пошуковими роботами файлів з вказаних в ньому директорій.
Вміст мого robots.txt:
User-agent: * Disallow: / manager / Disallow: / assets / components / Disallow: / core / Disallow: / mgr / Disallow: / connectors / Disallow: /index.php Disallow: *? Host: modx.ws Sitemap: https://modx.ws/sitemap.xml
Не забудьте поміняти modx.ws на назву свого основного хоста.
Як завжди - не соромтеся задавати внизу ваші питання. Буду радий будь-яких зауважень і коментарів.
Php?C> ExpiresActive on # Perhaps better to whitelist expires rules?
Php Disallow: *?