We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 13889
    • 39 Posts
    Здорово... а когда ждать мануал ?? Я так понимаю, если не адаптировать английскую статью по многосайтовости, то у меня ничего не получится .. и еще вопрос: а на какой версии Модх делать мультисайтинг ?? ... я так понял немцы пишут на 0.9.x версии, а Вы товарисчи на какой собираете ?

    ----------------------------

    Итак, я понял, что мануала не дождаться =) Буду тогда просто задавать Вам: Fuzzy and Kollad, уважаемые товарищи, вопросы ..
    Для начала опишу что сделал и на чем застопорился...

    1) Обязательно ли иметь "you will need Wayfinder 2.5" или же можно обойтись стандартным из 0.9.x huh
    2) Установил на сервере 0.9.6.3 Modx и включил Friendly URL за исключением Автоматического генерирования URL
    3) Создал чанк "host_url" и сниппет "http_host" как и написано в инструкции
    4) А как именно вот тут быть ?

    We want to create three different domains:
    * www.domain1.com
    * www.domain2.com
    * www.domain3.com

    We put the three folders for the three domains in the manager to:

    root
    + www.domain1.com
    + www.domain2.com
    + www.domain3.com
    + general content
    - general Home
    - 404

    Я так понял что в админке создаем 3 страницы с Title www.domain1.com и www.domain2.com и www.domain3.com
    Потом создали в корневом каталоге на хостинге три точно таких же папки .. Верно ?

    5) Теперь рассмотрим пример заполнения этих трех страниц в МАНАГЕРЕ Modx

    * pagetitle: www.domain1.com
    * alias: domain1-com
    * TV host_url: domain1-com
    Вопрос, а на кой черт мы присваивали TV "host_url" значение по умолчанию @inherit huh мне просто интересен смысл этой манипуляции...

    6) Файл .htaccess с ним самое интересное ... насколько я понял первую часть достаточно просто почитать, т.к. там идет описание каждого куска из целого файла - полный набор написан после слов
    This is what we are doing now for all three domains, so that our .htaccess looks like this:

    Верно или нет ?
    И что из стандартного файла .htaccess выкинуть а что нет ? или ничего не выкидывать ?

    7) Делаем плагин "multisite" и в шаблоне пишем <base href="http://[!http_host!]/" /> вместо стандартного
    8) Делаем плагин для страницы 404

    Ну и собственно должно работать, но не работает ... то выдавало 404 страницу, то выдавало
    ERROR: Too many forward attempts!
    The request could not be completed due to too many unsuccessful forward attempts.

    В чем я заблуждаюсь ? Может ли быть все дело в том, что я пытаюсь это сделать на Denwer huh или и там должно работать...
    Хотя насколько я понимаю обработка файла .htaccess должна работать на любом Апаче...
      • 7368
      • 264 Posts
      У меня работает на Denwer. Щас опишу что сделал я.

      1) Настройка субдомена на Denwer.

      В файле <web_server_root>/usr/local/apache/conf/httpd.conf
      <VirtualHost 127.0.0.1:80>
        DocumentRoot "Z:/home/test3.ua/www"  
        ServerName "test3.ua"
        ServerAlias "test3.ua" "www.test3.ua" "sub1.test3.ua" "www.sub1.test3.ua" "sub2.test3.ua" "www.sub2.test3.ua"
        ScriptAlias /cgi/ "/home/test3.ua/cgi/"
        ScriptAlias /cgi-bin/ "/home/test3.ua/cgi-bin/"
      </VirtualHost>


      Обьясняю действия:

      При вводе в браузере сайта, test3.ua, sub1.test3.ua, sub2.test3.ua - Apache будет направлять все на один и тот же путь DocumentRoot.

      2)Создание документов в manager

      root (загаловок дерева сайта, Ваше название сайта)
      + Главная

      + sub1 (pagetitle можно писать какой Вам удобнее)

      + sub2 (...)

      Рассмотрим первую страницу "Главная":

      Заголовок - Главная(или как Вам удобнее)
      Псевдоним - index
      Шаблон - main*
      TV host_url - @inherit

      * - в шаблоне main -
      ... 
      <base href="http://[!http_host!]/" /> 
      ...
      <link rel="stylesheet" href="/assets/templates/[!http_host!]/css/styles.base.css" type="text/css" media="screen" />
      ...


      <base ...> тут понятно, вставляем сниппет [!http_host!]
      <link ...> для того чтобы стили и вообще все ссылки на файлы стилей и скриптов ссылались правильно.

      Это требуется в случае, если Вы хотите для разных сайтов(субдоменов) использовать разные стили. Соответсвенно в папке /assets/templates/ создаете папку с названием сайта. Т.Е. для главной test3.ua, для субдоменов sub1.test3.ua, sub2.test3.ua и тд.

      Рассмотрим по аналогии остальные страницы:

      Заголовок - Заголовок субдомена 1
      Псевдоним - sub1
      Шаблон - sub1*

      и так далее для каждого домена...

      3) правка .htaccess

      Мой конечный вариант htaccess

      AddDefaultCharset utf-8
      
      Options +FollowSymlinks
      RewriteEngine On
      RewriteBase /
      
      #MAIN DOMAIN
      
      RewriteCond %{REQUEST_URI} !^/manager
      
      RewriteCond %{HTTP_HOST} .
      RewriteCond %{HTTP_HOST} !^test3.ua/sub1/(.*) [NC]  
      RewriteRule ^sub1/(.*) http://sub1.test3.ua/$1 [R=301,L]
      
      RewriteCond %{REQUEST_URI} ^/sub1.html
      RewriteRule ^sub1\.html$ http://sub1.test3.ua/$1 [R=301,L]
      
      RewriteCond %{REQUEST_FILENAME} index\.php [OR]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      
      
      #SUB DOMAIN :: SUB1
      
      RewriteRule ^test3.ua/sub1.html$ ^/sub1.test3.ua/$
      
      # do the other magic: Rewrite the the requests to for MODx readable folders
      
      RewriteCond %{HTTP_HOST} sub1\.test3\.ua [NC]
      RewriteCond %{REQUEST_URI} !^/manager
      RewriteCond %{REQUEST_FILENAME} index\.php [OR]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(index\.(html?|php)|sub1)?(.*)$ index.php?q=/sub1/$3 [L,QSA]
      
      # The Friendly URLs part for the rest (or the main domain)
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
      
      


      Говорю сразу, это не универсально, методом тыка и практики, результата добился ожидаемого, но решение не универсальное, а я бы даже сказал немного громоздкое.

      Вроде рассказал все что я делал. Будут вопросы - спрашивайте.

      tv - host_url = @inherit, это чтобы при создании страниц, в каком-то из Ваших под-сайтов не нужно было писать каждый раз host_url, эта переменная будет наследоватся свыше:)
        • 13889
        • 39 Posts
        Хочу разобрать файл .htaccess
        Я нашел такое использование
        RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
        RewriteRule ^/?(.*) http://%1/$1 [R=301,L]
        


        Тут у нас идет переадресация с доменов с WWW на домены без WWW, подскажите как сделать так чтобы наоборот ... методом тыка уже замучался - не выходит .. Пробовал читать мануалы по .htaccess - не помогло ... А хочется именно таким методом ибо тогда не нужно будет прописывать каждый новый домен ...