Как установить контроллер по умолчанию в yii2
Я UserControler
и я запускаю его на виртуальном сервере http://basic.com/index.php?r=user/index. Как я могу настроить UserController
и действий index
по умолчанию, когда я иду вhttp://basic.com
8 ответов
это можно установить в конфигурации, см. Контроллер По Умолчанию:
[
'defaultRoute' => 'main',
]
но обратите внимание, что это тесно связано с маршрутизацией, которая может быть полностью настроена
как уже сказали несколько человек, вам нужно добавить defaultRoute
в файле конфигурации.
Вот как это должно выглядеть:
//config/web.php
на basic шаблон или backend/config/main.php
на дополнительно
$config = [
...
'components' => [
...
],
'params' => $params,
'defaultRoute' => 'user/index',
];
с yii2 я смог сделать это в urlmanager с помощью:
'rules'=> [
['pattern'=>'<action>', 'route'=>'controller/<action>'],
]
Это не ответ на вопрос, однако это может быть полезно знать:
есть catchAll
в собственность yii\web\Application
, который определяется как:
конфигурация, указывающая действие контроллера, которое должно обрабатывать все запросы пользователей.
использование:
'catchAll' => ['controller/action']
Итак, каждый запрос http://basic.com позову controller/action
попробуйте другие решения... Если они не работают, используйте мой простой трюк...
и .в PHP страница в корне.
затем в этом файле напишите этот код:
return header('Location: http://your page location');
открыть web.php
файл из папки конфигурации, и добавить следующее:
'defaultRoute' => 'admin'
на $config
массив.
отметим, что defaultRoute
игнорируется, когда strictParsing
включена в urlManager
конфиг. Обратитесь к вопросу на GitHub:https://github.com/yiisoft/yii2/issues/5892
в качестве меры рекомендуется использовать следующую конфигурацию:
[
...
'defaultRoute' => 'default/index',
...
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
...
'rules' => [
...
'' => '', // <- this line should be added
],
],
...
]