Дружественные URL на Apache
Последнее обновление Aug 17th, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn moreMODX поставляет файл ht.access в корне сайта. Apache игнорирует его, пока вы не переименуете или не скопируете его в .htaccess. Нужен включённый mod_rewrite.
Настройки MODX (friendly_urls, base href, кеш) описаны на странице Использование дружественных URL.
Минимальные правила¶
Для установки в корень сайта используйте минимум следующее. Эти правила оставляют доступным .well-known/ для Let's Encrypt, запрещают остальные dotfiles, скрытые каталоги (например .git) и прямой доступ к core/:
RewriteEngine On
RewriteBase /
# Allow .well-known (Let's Encrypt and similar)
RewriteRule "^\.well-known/" - [L]
# Block other dotfiles / hidden directories and core/
RewriteRule "/\.|^\.(?!well-known/)|^core(/|$)" - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
В поставляемом ht.access также есть закомментированные редиректы HTTPS и www. Для более жёсткой блокировки (config.core.php, _build/ и связанных путей) см. Усиление безопасности MODX.
Установка в подкаталог¶
Если MODX стоит в подкаталоге, задайте RewriteBase с этим путём, включая завершающий слэш:
RewriteBase /subdirectoryName/
Чаще всего это нужно на локальных установках в подпапке.
Куда положить .htaccess¶
Поместите файл в корень сайта MODX (рядом с index.php, manager/, connectors/). Он может лежать выше по дереву, но обычно его кладут в корень сайта.
Если у хостера в этой директории уже есть .htaccess, объединяйте аккуратно: сделайте резервную копию, затем добавьте блок перезаписи MODX ниже правил хостера, если документация хостера не говорит иначе.
Необязательно: принудительный www или домен без www¶
Раскомментируйте только один из блоков www в ht.access и замените пример домена на свой. Пример редиректа www.yoursite.com на yoursite.com по HTTPS:
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Необязательно: принудительный HTTPS¶
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{SERVER_PORT} !^443
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Необязательно: убрать дубликаты /index.php¶
Поисковики считают /, /index.php и похожие URL дублирующим контентом. Типичное исправление:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,L]
Перед правками всегда сохраняйте рабочую резервную копию .htaccess. Синтаксическая ошибка может полностью отключить сайт, пока вы не восстановите файл.
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn more










