На стандартной установке не работают ЧПУ

Всё сделано по статье о стандартной установки (кстати, великолепная статья!). Темплейты, первые несколько категорий и ЧПУ настроены по видео быстрого старта. Но урлы дружественными не стали. Пробовал менять конфиг сайта по инструкции на rtfm.modx.com/display/revolution20/Nginx+Server+Config — без результата. Ошибок нет. Логирование rewrite в конфиге включено.
Хостинг на AWS, ubuntu 12.04.

Вопрос: какие подводные камни могут здесь быть, в каком направлении копать? Буду благодарен за ответы!
Андрей Кузьмин
28 ноября 2012, 04:43
modx.pro
2
7 046
0

Комментарии: 12

Василий Наумкин
28 ноября 2012, 09:21
0
Нет никаких подводных камней.
Настроить Nginx и изменить настройки:
    Андрей Кузьмин
    28 ноября 2012, 09:44
    0
    Так ить и сделано и то, и это :-)
    И кэш в менеджере чищу, и кэш в браузере отключен. А всё никак не работает.

    В файле /core/cache/logs/error.log нашёл вот такое:
    [2012-11-28 09:29:08] (ERROR @ /index.php) `[[+id]]` is not a valid integer and may not be passed to makeUrl()
    Может быть, здесь собака зарыта?
      Василий Наумкин
      28 ноября 2012, 10:11
      0
      Ну, у вас ссылки какие генерируются? link.html или index.php?id=5

      Если первое — то с MODX все ок, гоняйте Nginx, если второе — то разбирайтесь с движком. Неужели так трудно логично подумать?
        Андрей Кузьмин
        28 ноября 2012, 10:15
        0
        Второе. Подумать нетрудно, но опыта с Nginx и Revo маловато. С Evo ЧПУ включить всегда удавалось, а тут затык :-)
        Понятно, что найти можно всё, если закопаться в коде, но вопрос и задавался в надежде на имеющийся опыт.
          Василий Наумкин
          28 ноября 2012, 10:23
          0
          Очевидно, проблема с MODX.

          Попробуйте удалить директорию /core/cache/.
        Денис Богдановский
        04 октября 2014, 23:26
        1
        0
        У меня была такая же ошибка. Решил следующим образом. Что бы понять на что конкретно идет ругань в логе сделайте следующее.

        Нужно открыть файл modx.class.php (сайт\core\model\modx\modx.class.php)
        Далее ищете строку:

        } else {
                $this->log(modX::LOG_LEVEL_ERROR, '`' . $id . '` is not a valid integer and may not be passed to makeUrl()');
            }
            return $url;
        }


        Заменяете её вот на это. (на всякий случай бэкап файла сделайте modx.class.php)

        } else {
                $this->log(modX::LOG_LEVEL_ERROR, '`' . $id . '` is not a valid integer and may not be passed to makeUrl()');
                /*** print the stack trace to the MODx log ***/
                try {
                    throw new Exception('catch this...');
                }
                catch (Exception $e) {
                    $this->log(modX::LOG_LEVEL_ERROR, $e->getTraceAsString());
                }
                /*********************************************/
            }
            return $url;
        }
        Сохраните файл и поюзайте сайт что бы спровоцировать ошибку, а потом откройте лог.

        Там будет примерно вот что:

        [2010-11-17 22:30:39] (ERROR @ /index.php) `[[+id]]` is not a valid integer and may not be passed to makeUrl()
        [2010-11-17 22:30:39] (ERROR @ /index.php)
        #0 <your_site_root>htdocs\core\model\modx\modparser.class.php(955): modX->makeUrl('[[+id]]', '', '', -1)
        #1 <your_site_root>htdocs\core\model\modx\modparser.class.php(379): modLinkTag->process(NULL)
        #2 <your_site_root>htdocs\core\model\modx\modparser.class.php(165): modParser->processTag(Array, false)
        #3 <your_site_root>htdocs\core\model\modx\modchunk.class.php(93): modParser->processElementTags('[[$ysp.login_pa...', '<div class="ysp...', false, false, '[[', ']]', Array, 10)
        #4 <your_site_root>htdocs\core\model\modx\modx.class.php(1558): modChunk->process(Array)
        #5 <your_site_root>htdocs\core\components\login\model\login\login.class.php(165): modX->getChunk('ysp.login_panel...', Array)
        #6 <your_site_root>htdocs\core\cache\elements\modsnippet\2.include.cache.php(289): Login->getChunk('ysp.login_panel...', Array, 'modChunk')
        #7 <your_site_root>htdocs\core\model\modx\modscript.class.php(48): elements_modsnippet_2(Array)
        #8 <your_site_root>htdocs\core\model\modx\modx.class.php(1528): modScript->process(Array)
        #9 <your_site_root>htdocs\core\components\mycp\elements\ysplogin.snippet.php(12): modX->runSnippet('Login', Array)
        #10 <your_site_root>htdocs\core\cache\elements\modsnippet\24.include.cache.php(7): include('...')
        #11 <your_site_root>htdocs\core\model\modx\modscript.class.php(48): elements_modsnippet_24(Array)
        #12 <your_site_root>htdocs\core\model\modx\modparser.class.php(416): modScript->process(NULL)
        #13 <your_site_root>htdocs\core\model\modx\modparser.class.php(165): modParser->processTag(Array, true)
        #14 <your_site_root>htdocs\core\model\modx\modresponse.class.php(63): modParser->processElementTags('', '<!--? *? * defa...', true, false, '[[', ']]', Array, 10)
        #15 <your_site_root>htdocs\core\model\modx\modrequest.class.php(110): modResponse->outputContent(Array)
        #16 <your_site_root>htdocs\core\model\modx\modx.class.php(815): modRequest->prepareResponse()
        #17 <your_site_root>htdocs\core\model\modx\modx.class.php(852): modX->sendForward('1', Array)
        #18 <your_site_root>htdocs\core\model\modx\modrequest.class.php(146): modX->sendErrorPage()
        #19 <your_site_root>htdocs\core\model\modx\modrequest.class.php(88): modRequest->getResource('id', 'favicon.ico')
        #20 <your_site_root>htdocs\core\model\modx\modx.class.php(1072): modRequest->handleRequest()
        #21 <your_site_root>htdocs\index.php(93): modX->handleRequest()
        #22 {main}
        item #0 содержит некорректный вызов makeUrl(), а в item #3: показан чанк в котором нужно внести изменение, скорее всего заменить [[+id]] на [[*id]] или [[~[[+id]]]] заменить на [[~[[*id]]]].

        Не забудьте откатить modx.class.php
      Николай
      29 ноября 2012, 04:05
      0
      А вы после установки изменили название файлов с ht.accsses на .ahtaccsses?
        Андрей Кузьмин
        29 ноября 2012, 10:05
        0
        Изменил.
        Вообще, ЧПУ в навигации и крошках заработал после того, как всем документам-папкам были прописаны поля «Пункт меню».
        Пока осталась проблема с неработающей вложенностью: там, где в getPage вызывается msGetResources вложенности нет, а если использовать getResources она появляется. То есть, с исходными шаблонами Bootstrap все папки «находятся» в корне сайта, без учета реальной структуры и вложенности в дереве админки. Скорее всего, я что-то упустил из виду.
          Иван Тимофеев
          29 ноября 2012, 15:28
          0
          файлы .htaccsses предназначены для apache и к nginx отношения не имеют.

          по проблеме: попробуйте сами в урл прописать путь к любому документу n-вложенности (n>1) для проверки работает ли всетаки она. нет — смотрим ошибки, правим. да — думаем дальше)
            Андрей Кузьмин
            29 ноября 2012, 16:00
            0
            Не работает, выдает страницу без контента. Но и ошибок нет (nginx, php-fpm, modx errors).
            Видимо, стоит смотреть в сторону msGetResources.
          Иван Тимофеев
          29 ноября 2012, 16:10
          0
          нет контента — скорее всего 500 ошибка. смотреть логи сервера
            Андрей Кузьмин
            29 ноября 2012, 17:02
            0
            Шаблон отрабатывается, нет именно контента документа. И логи сервера пустые.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            12