При чем тут реальные файлы? При том, что здесь исп

При чем тут реальные файлы? При том, что здесь используется переменная $uri. Как я писал выше, если файл не найден, то УРЛ меняется на /index.php?q=$1 Повторюсь: # Именнованная лакация (правило) location @modx { # выполняем подмену на index.php rewrite ^/(.*)$ /index.php?q=$1 last; } Так как в большинстве случаев при ЧПУ файлов тупо нет, то постоянно и происходит подмена УРЛа на index.php. При этом и переменная $uri и принимает это значение. А если файл будет найден, то $uri не будет изменена, и будет иметь значение реально запрошенного адреса. Теперь понятно? Плагин конечно я тоже упростил. Изначально он был примерно такой: $query = '/';

        $query_str = str_replace('&', '&',($_SERVER['QUERY_STRING']));  
        
        if(!empty($query_vars['q'])){
            $query .= $query_vars['q'];
            unset($query_vars['q']);
        }
        else{
            $query .= 'index.php';
        }
        $query .= "?";
        
        $vars = array();
        foreach($query_vars as $k => $v){
            $vars[] = "{$k}={$v}";
        }
        if($vars){
            $query .= implode("&", $vars);
        }
        $modx->log(1,  print_r($query, 1));
        $modx->cacheManager->set($query , $modx->resource->_output); И то, что сейчас в плагине осталось — это публичный упрощенный вариант, для которого твои замечания очень обоснованный. Но для меня мой nginx-конфиг более актуальный :-)