Настройка маршрутизации (структуры) сайта в Webasyst

Структура сайта в Webasyst — это набор правил для обработки запросов от посетителей сайта. В зависимости от адреса (URL) открываемой страницы Webasyst перенаправляет его одному из приложений, установленных в вашем бекенде. Эти правила указываются в разделе «Структура» приложения «Сайт».

Для чего нужно использовать разные правила в структуре сайта

Добавлять новые правила нужно в 2 случаях:

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

1. Добавление страниц с собственным дизайном

Допустим, вы хотите добавить на сайт одну или несколько страниц, которые должны быть оформлены в особом стиле — например, лендинг-страницы. В этом случае нужно добавить новое правило в структуру сайта. В нашем примере можно создать правило, например, с адресом /landing/*. В свойствах правила выберите нужную тему дизайна и приложение, в котором вы будете создавать такие страницы (например, «Сайт»).

2. Использование другого приложения

Допустим, вы хотите к своему сайту добавить блог. Для этого установите специальное приложение «Блог». Поскольку вы установили новое приложение и хотите использовать его на сайте, то для этого приложения нужно создать новое правило в структуре сайта.

Добавляем правило в структуру сайта

Щелкните по ссылке «Новое правило» — появится область, в которой нужно:

  1. Выбрать приложение.
  2. Ввести адрес раздела сайта, который должен формироваться этим приложением. При добавлении нового правила убедитесь в том, чтобы его адрес не совпадал с адресами уже имеющихся правил.

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

Выбор приложения для нового правила

В Вебасисте любая страница сайта обязательно формируется каким-либо приложением. Например: страницы онлайн-витрины — приложением Shop-Script, фотогалерея — приложением «Фото», информационные статьи — приложением «Сайт», а корпоративный блог — приложением «Блог».

Вебасист позволяет отображать страницы разных приложений в едином стиле — благодаря этому они органично смотрятся вместе как части одного сайта.

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

Допустим, вы решили так:

  • раздел с адресом yourdomain.ru/shop/ отводится под онлайн-витрину (Shop-Script)
  • раздел с адресом yourdomain.ru/blog/ будет занят блогом
  • все остальные страницы сайта, включая главную, должны формироваться приложением «Сайт»

В точном соответствии с этим планом добавляем правила маршрутизации:

Заметьте, что в адресе раздела сайта нужно в конце добавлять символ * (звездочка) — он означает, что раздел включает в себя не только одну страницу с указанным адресом, но и все остальные страницы, адреса которых начинаются так же, как и адрес всего раздела.

Сравните:

  • yourdomain.ru/shop/ — раздел состоит только из 1 страницы с адресом yourdomain.ru/shop/
  • yourdomain.ru/shop/* — раздел может состоять из любого количества страниц, адреса которых начинаются на yourdomain.ru/shop/, например, yourdomain.ru/shop/category/food/, yourdomain.ru/shop/category/tv/, yourdomain.ru/shop/category/toys/ и т. д.

В каком порядке нужно располагать правила в структуре сайта

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

Чем больше фрагментов в адресе правила, тем выше оно должно быть расположено.

Правильный пример:
shop/new/* — самое подробное правило, в нем больше всего фрагментов, разделенных косой чертой
shop/* — менее подробное правило, в нем меньше фрагментов
* — наименее подробное правило, оно должно быть расположено ниже остальных
Неправильный пример:
*
shop/new/*
shop/*

В последнем, неправильном, примере наименее подробное правило (*) «перекроет» более подробные, и остальные разделы сайта работать не будут. Поэтому нужно переместить это общее правило вниз списка. Перемещать правила маршрутизации нужно с помощью иконки в левой части списка:

Как главное меню сайта зависит от его структуры

Пункты главного меню сайта не всегда зависят от настроек его структуры. Строго говоря, главное меню формируется не структурой сайта, а темой дизайна. В зависимости от используемой темы дизайна, главное меню может формироваться разными способами, например:

  • из названий разделов сайта из настроек структуры,
  • из названий из пунктов меню {$wa->apps()}, указанных в «Настройках» приложения «Сайт»,
  • из названий основных страниц приложения «Сайт»,
  • из названий основных страниц другого установленного приложения,
  • произвольным набором ссылок, вручную вписанный в исходный код темы дизайна.

Подробнее о настройке главного меню сайта.

48 комментариев

  • +1
    zavodpolimer7@yandex.ru zavodpolimer7@yandex.ru 31 октября 2014 04:16 #
    Спасибо,все встало на место!
  • +2
    Наиль С Наиль С 28 сентября 2015 05:08 #

    В статье говорится, все правильно, но как сделать так чтобы Магазин работал первым и без сайта. Чтобы в магазин можно было добавлять доп страницы? А то все страницы крепятся именно к сайту.

    • +1
      Алексей Алексей Webasyst 2 октября 2015 03:34 #

      Для этого необходимо для поселения Магазин указать адрес только * и все страницы добавлять через приложение Магазин -> Витрина -> Страницы. Обязательно, чтобы это правило было последним.

      Для поселение Сайт указать другой адрес или его удалить.

      • +1
        Clashmind Clashmind 8 декабря 2016 14:03 #

        а товар, размещенный как domen/shop/... не исчезнет с сайта?

        • +1
          Михаил Ушенин Михаил Ушенин Webasyst 12 декабря 2016 11:26 #

          Товары сами по себе с сайта не исчезают, а только в результате каких-то действий. Вы имеете в виду какие-то конкретные условия? Какие именно?

        • +1
          Елена Елена 28 октября 2015 14:13 #

          Скажите, а куда деваются эти правила маршрутизации после создания?

          Сделала правила. И как их теперь редактировать-удалять?

          Сайт->Стуктура - пусто. Написано "Выберите правило маршрутизации для редактирования его настроек" - а где его выбирать?

          В приложении Магазин->Витрина->Страницы - висят все правила, но там только добавлять страницы можно.

          Помогите доразобраться, пожалуйста.


          • +1
            Михаил Ушенин Михаил Ушенин Webasyst 29 октября 2015 03:30 #

            Возможно, у вас настроено несколько сайтов в приложении "Сайт", и вы выбрали сайт, у которого ещё нет правил (поселений). А в магазине могу отображаться правила для того сайта, у которого поселения настроены.

            • +1
              Елена Елена 29 октября 2015 06:45 #

              Михаил, благодарю за ответ.

              У меня всего один сайт в приложении "Сайт".

              И там, как на скриншоте выше - пусто, правил нет. Причем я-то их добавляла к этому единственному сайту.

              Очень надо удалить некоторые поселения, а я не могу найти где это делается. Где еще можно посмотреть?


              • +2
                Михаил Ушенин Михаил Ушенин Webasyst 29 октября 2015 09:30 #

                Возможно, у вас испорчен файл wa-config/routing.php. Попробуйте отредактировать его вручную.

                • +2
                  Елена Елена 29 октября 2015 13:22 #

                  Доступа к wa-config/ у меня нет. Но Ваш первый совет в результате оказался верным.

                  На моем скриншоте, над меню "Структура" виден серенький прямоугольник. Оказывается это был второй сайт без названия, который отображался как пустое место))))

                • +1
                  Илья Анисифоров Илья Анисифоров 18 ноября 2015 07:46 #

                  Не могу поменять витрину сайта, как только загружаю тему дизайна CUSTOM или Clear, то выдает ошибку, по возвращении прежней темы- Default, становится все на свои места.

                  Помогите сменить тему, пожалуйста.

                • +2
                  Stiv Stiv 23 ноября 2015 16:30 #

                  Подскажите, плз, как из меню вызвать страницу, на которой были бы представлены все товары из определенного списка (не категории), и произвольное описание к ним?

                  Пробовал делать страницу через приложение "сайт", и прописывать в нее код для встраивания (типа )

                  {if $wa->shop}
                  {$products = $wa->shop->productSet("promo")}
                  {include file="list-thumbs.html" products=$products}
                  {/if}

                  - вместо вывода списка вижу "Начните с создания страницы в бекенде сайта." причем текст, который был выше и ниже вставленного кода теряется.

                  Пробовал вариант 2: делать страницу в приложении магазин и вставлять в нее тот же код. Мало того, что ее в основное меню можно поместить только руками через настройки {$wa->apps()} , так она и таким образом не выводится. По ссылке вижу только "Theme THEME_ID not found- Запрашиваемый ресурс не доступен."

                  Как быть собственно с маршрутизацией, и с выводом нужных данных в нужном месте?


                • +1
                  Dmitry Lannister Dmitry Lannister 8 мая 2016 06:40 #

                  Делаю новое правило, сохроняю его, обновляю страницу и пусто, оно не сохроняеться.
                  Делаю точно такие же действия на поддомене и все сохроняеться.
                  Как такое может быть?

                  • +1
                    Эрик Эрик Webasyst 10 мая 2016 02:01 #

                    Возможно, не хватает прав доступа на папку wa-config и все вложенные папки и файлы. Увеличьте права доступа.

                  • +1
                    Julia G. Julia G. 8 ноября 2016 15:47 #

                    как убрать index.php из адресов ? у меня почему то все структура выглядит так domain/index.php/shop или domain/index.php/site

                    • +1
                      Михаил Ушенин Михаил Ушенин Webasyst 8 ноября 2016 16:32 #

                      Так бывает, если при установке Webasyst на вашем сервере был недоступен модуль mod_rewrite для веб-сервера Apache. В этом случае в конфигурационном файле wa-config/config.php прописывается строка вида

                      'mod_rewrite' => false //или 0 вместо false

                      Чтобы убрать index.php из адресов страниц, нужно включить модуль mod_rewrite в конфигурации веб-сервера (обратитесь к администратору сервера за помощью), затем в этом конфигурационном файле измените значение параметра 'mod_rewrite' с false или 0 на true либо 1 и очистите кеш в настройках Инталлера.

                      Это также может быть, если на вашем сервере установлен другой веб-сервер — не Apache, а, например, nginx. В этом случае нужно изменить конфигурацию nginx с использованием вот этого примера и точно так же, как описано выше, изменить значение конфигурационного параметра и очистить кеш в Инсталлере.

                      Проверьте также, чтобы в адресе вашего сайта в настройках приложения Сайт также отсутствовал фрагмент index.php в самом конце — в адресе сайта оставьте только доменное имя, если туда попал этот лишний фрагмент.

                    • +1
                      VladimirZ VladimirZ 23 января 2017 14:42 #

                      Анализаторы контента обнаруживают дублирование контента на страницах http://domain.ru и http://domain.ru/

                      Как сделать маршрутизацию, чтобы при обращении по этим адресам (со слешем в конце и без) они адресовались на ОДНУ страницу.

                      • +1
                        Михаил Ушенин Михаил Ушенин Webasyst 23 января 2017 17:20 #

                        Если ваш сайт работает на собственном хостинге, то для этого потребуется настройка перенаправления с помощью файла .htaccess или путём изменения конфигурации веб-сервера. Как это сделать, вы можете спросить в общем хабе поддержки.

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

                        Ваше замечание передали разработчикам, спасибо!

                        • +1
                          VladimirZ VladimirZ 24 января 2017 13:15 #

                          Как перенаправить через .htaccess мне понятно. Вопрос был в том, можно ли это сделать средствами движка.

                          Как я понял из ответа, пока нельзя.

                        • +1
                          Андрій Андрій 26 июня 2017 15:55 #

                          После созднаия сайта и страницы на главной два раздела - Страница с адресом домен/* и сама страница с текстом. Как оставить на главной только страницу с текстом? Поселение не менял, только создал страницу для главной. Спасибо за помощь!

                          • +1
                            После созднаия сайта и страницы на главной два раздела - Страница с адресом домен/* и сама страница с текстом.

                            Покажите на снимке экрана, как это выглядит. Не уверен, что понимаю, что значит "на главной два раздела".

                          • +1
                            Андрій Андрій 27 июня 2017 11:45 #

                            Страница - поселение и Страница - как информационная страница

                            • +1

                              Думаю, что состав меню зависит от того, как построена ваша тема дизайна. Видимо, она в самом начале добавляет ссылку на главный URL вашего сайта, а потом перечисляет адреса страниц, созданных в приложении "Сайт". Если это так, значит, нужно внести изменения в исходный код темы дизайна. Если вы используете какую-то из тем, разработанных Webasyst, напишите её название — посмотрим, действительно ли в ней происходит то, что вы показали, и как это можно быстро исправить.

                            • +1
                              Eugene Avramchuk Eugene Avramchuk 23 ноября 2017 16:54 #

                              Решил обратиться сюда, промучившись не один месяц...


                              Мне нужно следующее главное меню:


                              1. Главная страница - на приложении "Сайт". (У меня получилось так, что на вкладке браузера - 404. Страница не найдена. Но страница в главном меню отобразилась.

                              2. Далее - сам "Магазин" и несколько страниц к нему же (Доставка, Оплата и т.д.)

                              3. Еще три страницы на приложении "Блог".

                              4. Дополнительный вопрос - как сделать так, чтобы Каталог Магазина не отображался в прочих приложениях (Сайт и Блог), но только на страницах Магазина)? Это к изготовителю дизайна обращаться?


                              Все страшно глючит, особенно добавление страниц в магазине. Не успеваю что-то написать в нужном поле, как поле желтеет и намертво глючит. Что это? Как это побороть?

                              • +1
                                Михаил Ушенин Михаил Ушенин Webasyst 23 ноября 2017 17:12 #

                                Статья ­про настройку структуры сайта. А ваш вопрос — про главное меню. Одно может в некоторых случаях определять другое, но это совсем не обязательно.

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

                                В целом ситуация такая: внешний вид и структура главного меню на разных сайтах с разными дизайнами очень отличаются. Сделать универсальный конструктор меню, в котором можно создать любое нужно меню, которое будет правильно работать в любом дизайне — нереальная задача. Поэтому есть такие разные способы её решения.

                                • +1
                                  Eugene Avramchuk Eugene Avramchuk 23 ноября 2017 18:40 #

                                  То есть всего лишь для того, чтобы настроить главное меню, нужно нанимать кого-то (от 10000 руб.)? Если бы я знал это, то никогда бы не перешел на 5-6, а потом и на 7 версию.
                                  Я приобрел несколько новых приложений, плагинов, две темы дизайна и теперь еще должен кого-то нанимать для настройки главного меню? Ваша реклама гласила, что настроить дизайн теперь не будет проблемой для тех, кто не является программистом. А речь всего лишь о главном меню.

                                  Это явный перебор.

                                  • +1
                                    Михаил Ушенин Михаил Ушенин Webasyst 24 ноября 2017 10:42 #

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

                                  • +1
                                    Константин Елизарьев Константин Елизарьев 28 ноября 2017 12:08 #

                                    Добрый день! Есть три поддомена и основной домен: для site.ru, subdomen1.site.ru и т. д. Для них используются 4 базы данных. Возникла необходимость все поддомены перенести в каталоги на основном домене: site.ru/subdomen1/, например. Можно ли настроить маршрутизацию для этих каталогов, не создавая единую базу данных? Какие вообще могут быть варианты с минимальными затратами и потерями? Ps Писал гуманитарий. Спасибо!

                                  • +1
                                    Aficionado Aficionado 21 марта 2018 17:02 #

                                    Здравствуйте!
                                    Никак не могу разобраться с настройкой, вроде все делаю по инструкции и выглядит как написано, но никак не могу посмотреть на витрину магазина "глазами клиента", т.е. без ввода логина/пароля. При запросе в поддержку был получен ответ о неправильной настройки структуры сайта.

                                    Спасибо.

                                    • +1
                                      Михаил Ушенин Михаил Ушенин Webasyst 21 марта 2018 18:11 #
                                      никак не могу посмотреть на витрину магазина "глазами клиента", т.е. без ввода логина/пароля

                                      Почему?

                                      • +1
                                        Aficionado Aficionado 21 марта 2018 19:31 #

                                        Потому что при нажатии в бекенде на кнопку "Открыть витрину" отображается витрина с логином, при нажатии на который я попадаю в личный кабинет.

                                        Спасибо.


                                      • +1
                                        Aficionado Aficionado 22 марта 2018 09:30 #

                                        Доброе утро!

                                        • +1
                                          Михаил Ушенин Михаил Ушенин Webasyst 22 марта 2018 09:35 #

                                          Ваши настройки выглядят немного странно:

                                          1. Нет правила для главной страницы сайта — с адресом *.
                                          2. Для витрины магазина, в отличие от других разделов сайта, адрес указан кириллицей и с заглавной буквы.

                                          Добавьте в самом низу списка правило с адресом * или измените адрес любого из разделов (например, адрес витрины магазина) на * и перенесите его вниз списка.

                                        • +1
                                          Aficionado Aficionado 22 марта 2018 10:17 #

                                          Вот так надо было сделать, я правильно понял?

                                          В витрине ничего не изменилось, логин так же присутствует (замазан)



                                          Михаил, можете ли Вы еще подсказать как мне изменить НАИМЕНОВАНИЕ в левом верхнем углу "S180.... "на имя магазина и заменить строчку под ним "Список товаров с идентификатором и т.п....." на кнопки или убрать ее если это невозможно, никак не могу найти где это изменяется.

                                          Спасибо.

                                          • +1
                                            Михаил Ушенин Михаил Ушенин Webasyst 22 марта 2018 11:21 #
                                            Вот так надо было сделать, я правильно понял?

                                            Нет. Вы изменили адрес правила витрины на */*, а надо было изменить на * (просто одна звёздочка).

                                            как мне изменить НАИМЕНОВАНИЕ в левом верхнем углу

                                            Об этом есть отдельная статья. Она быстро находится по вроде бы вполне адекватному поисковому запросу, если поискать.

                                          • +1
                                            Aficionado Aficionado 22 марта 2018 12:24 #

                                            Михаил, так я тоже делал, результат тот же, логин отображается при просмотре витрины и при переходе по ссылке (на одной из кнопок ссылка на блог) блог открывается в адм. панели..

                                            Статью эту читал)) Понял в чем моя ошибка - не поменял в ИНСТАЛЛЕРЕ, думал, что достаточно только в МАГАЗИНЕ. Спасибо ))

                                            • +1
                                              Михаил Ушенин Михаил Ушенин Webasyst 22 марта 2018 13:01 #

                                              Вам нужно, чтобы сайт выглядел так, как будто никто ещё не вошёл? Откройте его в другом браузере, или в режиме "инкогнито" (приватное окно) того же браузера.

                                            • +1

                                              Добрый день, возникла сложность:

                                              Создал 2 страницы в дополнительной структуре "договора", эти страницы присутствуют в нескольких местах на сайте, в подвале и в корзине. При нахождении на этих страницах и нажатии на логотип, для перехода на главную (https://www.teplosvarka.ru), переходит на https://www.teplosvarka.ru/dog... . Что нужно сделать, чтобы переход был на домен.ру ?

                                            • +2
                                              Евгения Евгения 28 июля 2018 09:19 #

                                              Здравствуйте. После обновления появилась ошибка - Нет правил для приложений «Контакты», «Логи».

                                              Что делать? ))

                                              • +1

                                                Это не ошибка, а информационное сообщение. Оно напоминает о том, что вы не настроили правила в структуре сайта для этих приложений. Это значит, что функциональность этих приложений без правил в структуре сайта может быть ограничена: нет возможности показывать информацию посетителям сайта или получать от них запросы через эти приложения.

                                                • +1
                                                  Aldor Aldor 31 июля 2018 14:56 #

                                                  Поддерживаю вопрос. Напоминание это хорошо, но хотелось бы в описании приложения тут https://www.webasyst.ru/store/... найти ответ. Требований для отдельного поселения приложения "Контакты" мне тоже не попадалось

                                                  • +1

                                                    Логика работы этого уведомления ещё будет дорабатываться. В частности, если для «Контактов» нет установленного плагина с функциями для работы с посетителями сайта, то для этого приложения предупреждение показываться не должно, потому что у этого приложения без плагинов также нет функций для работы с посетителями сайта.

                                                    Добавить комментарий

                                                    Чтобы добавить комментарий, зарегистрируйтесь или войдите