Дружественные URL (ЧПУ) в MODX для веб-сервера nginx

2 May 2025

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

Содержимое файла default.conf, используемого для конфигурации стандартного nginx Docker образа:


server {

    index index.php;
    server_name example.com;
    root /usr/share/nginx/html;

    # MODX friendly URLs
    location / {
      if (!-e $request_filename) {
      rewrite ^/(.*)$ /index.php?q=$1 last;
      }
    } 
  
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php-fpm:9001;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Конфиг отличается от стандартного используемым портом PHP-FPM: 9001 вместо 9000.