yii2如何设置默认控制器
Posted
技术标签:
【中文标题】yii2如何设置默认控制器【英文标题】:How to set the default controller in yii2 【发布时间】:2014-10-29 05:54:13 【问题描述】:我有UserControler
,我在虚拟服务器http://basic.com/index.php?r=user/index 中运行它。当我转到http://basic.com 时,如何将UserController
和操作index
设置为默认值
【问题讨论】:
你试过什么?你用谷歌搜索过这个:larryullman.com/2013/02/18/… 【参考方案1】:您是否尝试过您的配置:
'defaultRoute' => 'user/index'
Default Controller
【讨论】:
我如何在控制器中设置默认值?例如,如果登录将另一个默认路由器【参考方案2】:这可以在配置中设置,见Default Controller:
[
'defaultRoute' => 'main',
]
但请注意,这与路由密切相关,完全可以通过urlManager
组件自定义。那么如果你想让domain/profile
表现得像domain/user/profile
那么urlManager
的这些规则可能是另一种方法:
'rules' => array(
'<action:\w+>' => 'user/<action>', // <-- use UserController by default
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
希望这会对某人有所帮助:)
【讨论】:
【参考方案3】:使用 yii2 我可以在 urlmanager 中使用:
'rules'=> [
['pattern'=>'<action>', 'route'=>'controller/<action>'],
]
【讨论】:
【参考方案4】:这不是问题的答案,但了解以下内容可能会有所帮助:
yii\web\Application
中有一个 catchAll
属性,定义为:
指定一个控制器动作的配置应该处理所有用户请求。
用法:
'catchAll' => ['controller/action']
所以,对http://basic.com 的每个请求都会调用controller/action
【讨论】:
【参考方案5】:就像很少有人说的那样,您需要在配置文件中添加defaultRoute
。
以下是它的外观:
//config/web.php
在 basic 模板或 backend/config/main.php
在 advanced
$config = [
...
'components' => [
...
],
'params' => $params,
'defaultRoute' => 'user/index',
];
【讨论】:
【参考方案6】:尝试其他解决方案...如果它们不起作用,请使用我的简单技巧...
只需在根目录下创建一个 index.php 页面。
然后,在该文件中,编写以下代码:
return header('Location: http://your page location');
【讨论】:
【参考方案7】:从您的配置文件夹中打开web.php
文件,并添加以下内容:
'defaultRoute' => 'admin'
到您的$config
数组。
【讨论】:
【参考方案8】:请注意,当strictParsing
在urlManager
配置中设置为启用时,defaultRoute
将被忽略。参考GitHub上的问题:https://github.com/yiisoft/yii2/issues/5892
建议使用以下配置作为衡量标准:
[
...
'defaultRoute' => 'default/index',
...
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
...
'rules' => [
...
'' => '', // <- this line should be added
],
],
...
]
【讨论】:
【参考方案9】:如果“defaultRoute”不起作用 - 检查“urlManager”的设置。也许那里设置了默认路由。
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index', // this line should be chenged to ''=>''.
'<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
],
],
【讨论】:
以上是关于yii2如何设置默认控制器的主要内容,如果未能解决你的问题,请参考以下文章