@muhammadkhon

Как убрать имена всех контроллеров из url в Yii2?

Например, имеется контроллеры User, Site и т.д. Необходимо при переходе не отображалось название контроллера в url.
Вместо:
site.com/user/auth
Было:
site.com/auth
__________________________________________
Вместо:
site.com/site/contact
Было:
site.com/contact
  • Вопрос задан
  • 570 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Дополню ответ от Илья Караваев
Все это настраивается в конфигурации urlManager, например если Все запросы в которых нет контроллера необходимо перенаправлять в SiteController, тогда это можно сделать так:
'urlManager' => [            
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [                
        '<action>' => 'site/<action>', 
    ]
],

если же Вы хотите к действиям каждого из контроллера обращать без их имени тогда для каждого действия необходимо прописывать свое правило, например:
'urlManager' => [            
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [                
        '/contact' => 'site/contact', 
        '/auth' => 'user/auth'
    ]
],


Более подробно можно почитать здесь
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Quieteroks
php программист
Через urlManager. Просто нужно составить правильный список правил (rule). И скорее всего Вам придется это делать для каждого такого сокращения, поскольку Вам в любом случае нужно явно указать куда направлять запрос для самой Yii.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы