При чем тут реальные файлы? При том, что здесь исп
Aug 26, 2013
При чем тут реальные файлы? При том, что здесь используется переменная $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-конфиг более актуальный :-)