На стандартной установке не работают ЧПУ
Всё сделано по статье о стандартной установки (кстати, великолепная статья!). Темплейты, первые несколько категорий и ЧПУ настроены по видео быстрого старта. Но урлы дружественными не стали. Пробовал менять конфиг сайта по инструкции на rtfm.modx.com/display/revolution20/Nginx+Server+Config — без результата. Ошибок нет. Логирование rewrite в конфиге включено.
Хостинг на AWS, ubuntu 12.04.
Вопрос: какие подводные камни могут здесь быть, в каком направлении копать? Буду благодарен за ответы!
Хостинг на AWS, ubuntu 12.04.
Вопрос: какие подводные камни могут здесь быть, в каком направлении копать? Буду благодарен за ответы!
Комментарии: 12
Нет никаких подводных камней.
Настроить Nginx и изменить настройки:
Настроить Nginx и изменить настройки:
Так ить и сделано и то, и это :-)
И кэш в менеджере чищу, и кэш в браузере отключен. А всё никак не работает.
В файле /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()
Может быть, здесь собака зарыта?
И кэш в менеджере чищу, и кэш в браузере отключен. А всё никак не работает.
В файле /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()
Может быть, здесь собака зарыта?
Ну, у вас ссылки какие генерируются? link.html или index.php?id=5
Если первое — то с MODX все ок, гоняйте Nginx, если второе — то разбирайтесь с движком. Неужели так трудно логично подумать?
Если первое — то с MODX все ок, гоняйте Nginx, если второе — то разбирайтесь с движком. Неужели так трудно логично подумать?
Второе. Подумать нетрудно, но опыта с Nginx и Revo маловато. С Evo ЧПУ включить всегда удавалось, а тут затык :-)
Понятно, что найти можно всё, если закопаться в коде, но вопрос и задавался в надежде на имеющийся опыт.
Понятно, что найти можно всё, если закопаться в коде, но вопрос и задавался в надежде на имеющийся опыт.
Очевидно, проблема с MODX.
Попробуйте удалить директорию /core/cache/.
Попробуйте удалить директорию /core/cache/.
У меня была такая же ошибка. Решил следующим образом. Что бы понять на что конкретно идет ругань в логе сделайте следующее.
Нужно открыть файл modx.class.php (сайт\core\model\modx\modx.class.php)
Далее ищете строку:
Заменяете её вот на это. (на всякий случай бэкап файла сделайте modx.class.php)
Там будет примерно вот что:
Не забудьте откатить modx.class.php
Нужно открыть файл 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
А вы после установки изменили название файлов с ht.accsses на .ahtaccsses?
Изменил.
Вообще, ЧПУ в навигации и крошках заработал после того, как всем документам-папкам были прописаны поля «Пункт меню».
Пока осталась проблема с неработающей вложенностью: там, где в getPage вызывается msGetResources вложенности нет, а если использовать getResources она появляется. То есть, с исходными шаблонами Bootstrap все папки «находятся» в корне сайта, без учета реальной структуры и вложенности в дереве админки. Скорее всего, я что-то упустил из виду.
Вообще, ЧПУ в навигации и крошках заработал после того, как всем документам-папкам были прописаны поля «Пункт меню».
Пока осталась проблема с неработающей вложенностью: там, где в getPage вызывается msGetResources вложенности нет, а если использовать getResources она появляется. То есть, с исходными шаблонами Bootstrap все папки «находятся» в корне сайта, без учета реальной структуры и вложенности в дереве админки. Скорее всего, я что-то упустил из виду.
файлы .htaccsses предназначены для apache и к nginx отношения не имеют.
по проблеме: попробуйте сами в урл прописать путь к любому документу n-вложенности (n>1) для проверки работает ли всетаки она. нет — смотрим ошибки, правим. да — думаем дальше)
по проблеме: попробуйте сами в урл прописать путь к любому документу n-вложенности (n>1) для проверки работает ли всетаки она. нет — смотрим ошибки, правим. да — думаем дальше)
Не работает, выдает страницу без контента. Но и ошибок нет (nginx, php-fpm, modx errors).
Видимо, стоит смотреть в сторону msGetResources.
Видимо, стоит смотреть в сторону msGetResources.
нет контента — скорее всего 500 ошибка. смотреть логи сервера
Шаблон отрабатывается, нет именно контента документа. И логи сервера пустые.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.