I have a similar problem with the default user/login route however things are a little complicated by my use of a plugin user management module ( yii2-user )
My config file configures the module and it works well but trying to overide user/login in the components section
'user' => [
'loginUrl' => ['/user/security/login'],
'allowAutoLogin' => false
],
fails miserably with Yii steadfastly returning user/login.
earlier in the config the dektrium user module is defined.
'user' => [
'class' => 'dektrium\user\Module',
'confirmWithin' => 21600,
'cost' => 12,
'admins' => ['admin']
],
I have tried to override it in a beforeAction in the SiteController but looking at the log files this file is only executed well after the initial call to user/login as you can see here ( lines 6 and 13 ) …
1 10:42:14.305 trace yii\base\Application::bootstrap Bootstrap with dektrium\user\Bootstrap::bootstrap()
2 10:42:14.305 trace yii\base\Module::getModule Loading module: user
3 10:42:14.306 trace yii\base\Module::getModule Loading module: debug
4 10:42:14.306 trace yii\base\Application::bootstrap Bootstrap with yii\debug\Module::bootstrap()
5 10:42:14.307 trace yii\web\UrlRule::parseRequest Request parsed with URL rule: <controller:\w+>/<action:\w+>
6 10:42:14.307 trace yii\web\Application::handleRequest Route requested: 'user/login'
7 10:42:14.308 error yii\web\HttpException:404 exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "user/login".' in /var/www/vhosts/ioiotrap/vendor/yiisoft/yii2/base/Module.php:461
Stack trace:
#0 /var/www/vhosts/ioiotrap/vendor/yiisoft/yii2/web/Application.php(83): yii\base\Module->runAction('user/login', Array)
#1 /var/www/vhosts/ioiotrap/vendor/yiisoft/yii2/base/Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#2 /var/www/vhosts/ioiotrap/backend/web/index.php(18): yii\base\Application->run()
#3 {main}
Next exception 'yii\web\NotFoundHttpException' with message 'Unable to resolve the request "user/login".' in /var/www/vhosts/ioiotrap/vendor/yiisoft/yii2/web/Application.php:95
Stack trace:
#0 /var/www/vhosts/ioiotrap/vendor/yiisoft/yii2/base/Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 /var/www/vhosts/ioiotrap/backend/web/index.php(18): yii\base\Application->run()
#2 {main}
8 10:42:14.308 trace yii\base\Controller::runAction Route to run: site/error
9 10:42:14.310 info yii\web\Session::open Session started
/var/www/vhosts/ioiotrap/backend/controllers/SiteController.php (21)
10 10:42:14.311 info yii\db\Connection::open Opening DB connection: mysql:host=localhost;dbname=ioiotrapsite
/var/www/vhosts/ioiotrap/backend/controllers/SiteController.php (21)
11 10:42:14.312 info yii\db\Command::query SELECT * FROM `auth_item` WHERE `name`='admin'
/var/www/vhosts/ioiotrap/backend/controllers/SiteController.php (21)
12 10:42:14.313 trace yii\rbac\DbManager::checkAccessRecursive Checking role: admin
/var/www/vhosts/ioiotrap/backend/controllers/SiteController.php (21)
13 10:42:14.313 info application iHm logmessage at beforeAction
/var/www/vhosts/ioiotrap/backend/controllers/SiteController.php (29)
A manual call to route /user/security/login works fine and using this in the site menu bar the route is not overridden but references to that route in the vendor source code are overridden by the time they reach the browser to user/login.
So, with both a module and a component section in the config file is the component section being ignored and if not how can I get the framework to accept the modules user/security/login and stop replacing it?