Дружественные URL на nginx
Последнее обновление Oct 11th, 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
$194 per month—let's make that $500!
Learn morenginx не использует .htaccess. Для дружественных URL нужен fallback через try_files (или эквивалентную перезапись) на index.php, плюс PHP-FPM (или другая настройка FastCGI для PHP).
MODX Cloud: пропустите конфигурацию сервера ниже. На вашем сайте nginx для дружественных URL уже настроен. Включите их только в Менеджере (Использование дружественных URL).
На других хостах сначала добейтесь работающей перезаписи, затем завершите настройки MODX на той же странице.
Пример блока server¶
Подставьте свои server_name, root, TLS и цель fastcgi_pass.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
# http2 on требует nginx >= 1.25.1; в старых версиях используйте: listen 443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name example.com www.example.com;
# ssl_certificate /path/to/fullchain.pem;
# ssl_certificate_key /path/to/privkey.pem;
root /var/www/example.com;
index index.php;
client_max_body_size 30M;
location @modx {
rewrite ^/(.*)$ /index.php?q=$1&$args last;
}
location / {
absolute_redirect off;
try_files $uri $uri/ @modx;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $host;
fastcgi_ignore_client_abort on;
}
location ~ /\.ht {
deny all;
}
location ~ ^/(_build|_gitify|_backup|core|config\.core\.php) {
deny all;
}
}
Подключение PHP-FPM¶
Строка fastcgi_pass должна совпадать с тем, как слушает PHP-FPM:
- Unix-сокет (часто на одном хосте), например
unix:/run/php/php8.2-fpm.sockилиunix:/var/run/php-fpm/www.sock - TCP, например
127.0.0.1:9000
Проверьте директиву listen в конфиге пула (часто /etc/php/*/fpm/pool.d/www.conf) и используйте то же значение в nginx.
www и домен без www¶
В примере HTTP перенаправляется на HTTPS канонического хоста. Если на 443 остаются и www, и домен без www, добавьте явный редирект с одного на другой, чтобы сессии и SEO не расходились.
См. также¶
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
$194 per month—let's make that $500!
Learn more










