Yii2: url-адреса к модулям

Здравствуйте.

Изучаю фреймворк.

Прошу помощи в установке правильного адреса для конкретного модуля.

Есть 3 модуля со своими загрузочными файлами:

  • frontend (frontend\web\index.php);

  • backend (backend\web\index.php);

  • blog (blog\web\index.php).

В возле каждого index.php лежит свой .htaccess, где прописано передача запросов на index.php.


RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

В корневом каталоге лежит .htaccess, где передается управление модулям, в зависимости от начального пути в адресе:


    # Backend redirect

    RewriteCond %{REQUEST_URI} ^/backend

    RewriteRule ^backend/(.*)$ backend/web/$1 [L]


    # Statics redirect

    RewriteCond %{REQUEST_URI} ^/blog

    RewriteRule ^blog/(.*)$ blog/web/$1 [L]


    # Frontend redirect

    RewriteCond %{REQUEST_URI} ^(.*)$

    RewriteRule ^(.*)$ frontend/web/$1

Суть проблемы для frontend (остальные пока не будем рассматривать):

Адрес для модуля выглядит следующим образом: http: //domain/frontend/web/controller/action

Нужно убрать /frontend/web из пути, чтобы напр., контроллер site с экшеном about были доступны по адресу http: //domain/site/about вместо http: //domain/frontend/web/site/about

Как это сделать?

Текущая конфигурация urlManager:


'urlManager' => [

    'showScriptName' => false,

    'enablePrettyUrl' => true,

    'enableStrictParsing' => true,

       'rules' => [

                '<controller>/<action>' => '<controller>/<action>',

       ]

]

скорее всего ваш хтакчесс должен выглядеть примерно так




    # Backend redirect

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} ^/backend

    RewriteRule . backend/web/index.php [L]


    # Statics redirect

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} ^/blog

    RewriteRule . blog/web/index.php [L]


    # Frontend redirect

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . frontend/web/index.php



далее как я понял у вас 3 приложения в каждом задайте у urlManager конфиг baseUrl




'urlManager' => [

    'showScriptName' => false,

    'baseUrl' => '/frontend',

    'enablePrettyUrl' => true,

    'enableStrictParsing' => true,

       'rules' => [

                '<controller>/<action>' => '<controller>/<action>',

       ]

]



и не забудьте про ассет мэнеджер там скорее всего тоже надо будет правильно настроить пути!