We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17459
    • 268 Posts
    Что надо:
    страницы должны быть вида http://domain.ltd/razdel/podrazdel/stranica/
    Реализовал:
    -прописал везде алисы
    - поставил в поле "Суффикс для семантических URL:" значок слэша /

    Что надо:
    страница 404
    Реализовал:
    - поставил в поле "Страница ошибки "404"" ид страницы 131, в поле "Первая страница:" осталась 1.

    Теперь проверяю. Вроде всё ок. Но стоит мне набрать http://domain.ltd как мне открывается страница 404.

    Я пробовал добавить
    RewriteRule ^/$ /index.php?q=1 [L,QSA] перед RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
    Теперь всё ок. Главная страница показывается нормально, почему-то она не отображается как надо: html код, смотрю, такой же, а не показывает он страницу как обычную html.
    Если я уберу любое из этих правил, то страничка показывается нормально.

    Больше никаких правил нет, так что глюки за счёт чего-либо другого, я думаю, исключены.

    То есть вопрос: как мне исправить глюк, связанный с тем, что корень сайта ведёт на 404. Если делать это как я хотел тупо вбив редирект со слэша на index.php?q=1, то он отправляет результат браузеру в каком-то кривом виде, он не показывается как html
      • 17459
      • 268 Posts
      Как вариант исправления ошибки можно сделать проверку
      если .../index.php?q=/ то есть если в q находится слэш, то показывать главную страницу. Но не могу найти где это в ModX...
        • 17459
        • 268 Posts
        Ошибку исправил. Открыл файл manager\includes\document.parser.class.inc.php и там добавил 1 строчку
        function getDocumentIdentifier($method) {
        // function to test the query and find the retrieval method
        $docIdentifier= $this->config[’site_start’];
        switch ($method) {
        case ’alias’ :
        $docIdentifier= $this->db->escape($_REQUEST[’q’]);
        if($docIdentifier=="/") $docIdentifier = 1;
        break;
        case ’id’ :
        if (!is_numeric($_REQUEST[’id’])) {
        $this->sendErrorPage();
        } else {
        $docIdentifier= intval($_REQUEST[’id’]);
        }
        break;
        }
        return $docIdentifier;
        }