Как убрать название контроллера модуля из url в yii2?

Пользователь

от hoyt.jerde , в категории: PHP , 2 года назад

Как убрать название контроллера модуля из url в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от elda , 2 года назад

@hoyt.jerde 

Чтобы убрать название контроллера модуля из URL в Yii2, необходимо настроить маршрутизацию в файле конфигурации приложения (например, в файле config/web.php).


В файле конфигурации приложения, вы можете настроить правила маршрутизации для модулей, используя компонент UrlManager. Например, если вы хотите скрыть название контроллера модуля в URL для модуля с именем "admin", вы можете добавить следующий код в конфигурационный файл:

1
2
3
4
5
6
'urlManager' => [
    'rules' => [
        'admin/<controller:w+>/<action:w+>' => 'admin/<controller>/<action>',
        'admin/<action:w+>' => 'admin/default/<action>',
    ],
],


Эти правила маршрутизации перенаправляют запросы вида admin/controller/action на соответствующий контроллер и действие в модуле "admin". Если вы хотите использовать действие по умолчанию в модуле "admin", вы можете использовать правило 'admin/<action:w+>' => 'admin/default/<action>'.


После этого, вы можете использовать URL вида /admin/action для доступа к действию в модуле "admin", без указания названия контроллера в URL.

Пользователь

от willa_will , год назад

@hoyt.jerde 

Для того чтобы убрать название контроллера модуля из URL в Yii2, можно использовать правила маршрутизации (URL-правила) в компоненте UrlManager. Ниже приведен пример настройки маршрутизации для модуля с именем "admin":

1
2
3
4
5
6
7
'urlManager' => [
    'rules' => [
        'admin' => 'admin/default/index',
        'admin/<action:w+>' => 'admin/default/<action>',
        'admin/<controller:w+>/<action:w+>' => 'admin/<controller>/<action>',
    ],
],


В этом примере:

  • Правило 'admin' => 'admin/default/index' говорит, что при запросе "/admin" будет вызываться действие "index" контроллера "default" в модуле "admin".
  • Правило 'admin/
  • Правило 'admin/


После настройки URL-правил, можно использовать URL вида "/admin" для доступа к действию "index" модуля "admin", URL вида "/admin/действие" для доступа к соответствующему действию в модуле "admin" и URL вида "/admin/контроллер/действие" для доступа к соответствующему контроллеру и действию в модуле "admin".