We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 4379
    • 23 Posts
    А мультисайтовость на MODx никто не делал?
    Суть задачи такова, на каждый домен - свой сайт. Имена документов могут повторяться, документы должны быть как-будто от корня сервера (не в папке).
    Мне приходит в голову только одно - включить использование полного пути к документу и, сложив каждый сайт в отделную папку, перенаправлять с помощью mod_rewrite на нужную папку в зависимости от HTTP_HOST... Сейчас собираюсь этот вариант опробовать, но уже предчувствую, что будут грабли с генерацией ссылок... из них надо будет выкусывать эти самые каталоги...
    Других идей нету?
      • 4379
      • 23 Posts
      Попробовал, неплохо вроде получается... Если папку делать точно совпадающей с названием хоста, например, mysite.ru, то большинство ссылок, которые генерируются по относительному принципу, например, [~id~] рождает ссылку вида mysite.ru/alias-for-that-id выходит так, что ссылка воспринимается как абсолютная и срабатывает как положено. Ну где это не сработает, то можно будет и подхачить слегка smiley
        • 4379
        • 23 Posts
        В этом способе еще дополнительные прелести нарисовались - можно делать структуры данных за пределами корней сайтов, недоступные для отображения smiley
          • 16545
          • 358 Posts
          Изобретение велосипедов в принципе приветствуется, но возможно уже есть более оптимальное решение здесь http://www.modxcms.com/Subsites-the-MAD-HACK-1433.html
            • 4379
            • 23 Posts
            Мой велосипед отличается от готового, тем, что у него есть педали и руль smiley
            Я, конечно, глубоко не смотрел, скачивать и ставить мне было лень, так как мое решение меня не только устраивает, но уже и начинает нравится, однако, судя по описанию, решение Mad Hack мне скорее всего даже не подходит совсем, если я правильно понял, оно использует разные базы данных вообще, т. е. у сайтов практически не будет общей админки и общих структур данных, чего очень хотелось изначально...
              • 16545
              • 358 Posts
              Засветите тогда плиз ваше решение..., я так понимаю это конфигурация .htaccess файла?
                • 4379
                • 23 Posts
                Я думал, что я все понятно написал... Ладно, тогда подробнее. Случай для 2 доменов: myshop.com и mycatalog.com (вымышелнные). Прописываем от корня документы:
                index.html - здесь ставим site_start и сниппет редиректящий на внутренний index.html, в зависимости от имени хоста.
                myshop.com/index.html - внутренний индекс и собственно начало дерева myshop.com, здесь лежат все документы этого сайта
                mycatalog.com/index.html - внутренний индекс и собственно начало дерева mycatalog.com, здесь лежат все документы этого сайта
                catalog - пример дерева доков уровня ниже, чем любой из сайтов (к нему доступа нет), но можно использовать с помощью ditto и других средств в качестве общих (для обоих сайтов) структур данных, скажем, если это каталог товаров и часть из них присутствует в обоих магазинах.
                В .htaccess пишем:
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteCond %{HTTP_HOST} ^mysite.com$
                RewriteRule ^(.*)$ index.php?q=mysite.com/$1 [L,QSA]
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteCond %{HTTP_HOST} ^mycatalog.com$
                RewriteRule ^(.*)$ index.php?q=mycatalog.com/$1 [L,QSA]
                

                В итоге все запросы к хосту mysite.com "редиректятся" в папку mystite.com, а к хосту mycatalog.com - в папку mycatalog.com соответственно. При вызове без документа, срабатывает site_start, который установлен на /index.html, а он редиректит на соответствующий index.html внутри папки-сайта.
                  • 16545
                  • 358 Posts
                  Подробно и внятно, есть один проектик, где именно такой метод может быть и пригодится.
                  О результатах сообщу позже...

                  Respect
                    • 16545
                    • 358 Posts
                    ...и сниппет редиректящий на внутренний index.html, в зависимости от имени хоста...

                    Вот этот момент осветите, plz ....

                    Что-то типо....?
                    <?php
                    $url = $modx->makeUrl($id);
                    ob_end_clean(); // this will end the output buffer and discard silently what ever was in it
                    header('Location: '.$url);
                    ?>
                      • 4379
                      • 23 Posts
                      А что там светить не понимаю?

                      А сниппет редиректящий написать трудно что-ли?

                      $modx->sendRedirect(’index.html’);

                      Если вы таких простых вещей не можете сделать, может вам лучше специалиста нанять... я например без денег сижу совсем!