如何在yii2中设置默认控制器

vdgimpew  于 2022-11-09  发布在  其他
关注(0)|答案(9)|浏览(185)

我有UserControler,并在虚拟服务器http://basic.com/index.php?r=user/index中运行它。

ne5o7dgx

ne5o7dgx1#

您是否在配置中尝试过:

'defaultRoute' => 'user/index'

Default Controller

bn31dyow

bn31dyow2#

正如一些人已经说过的,您需要在配置文件中添加defaultRoute
以下是它的外观:
//config/web.php(在基本模板中)或backend/config/main.php(在高级中)

$config = [
    ...
    'components' => [
        ...
    ],
    'params' => $params,
    'defaultRoute' => 'user/index',
];
ujv3wf0j

ujv3wf0j3#

这可以在配置中设置,请参阅默认控制器:

[
    'defaultRoute' => 'main',
]

但是请注意,这与路由密切相关,路由可以完全由urlManager组件定制。如果您希望domain/profiledomain/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>',
),

希望这能对某人有所帮助:)

wwodge7n

wwodge7n4#

从配置文件夹中打开web.php文件,然后添加以下内容:
'defaultRoute' => 'admin'
$config数组。

kokeuurv

kokeuurv5#

请注意,当strictParsingurlManager配置中设置为启用时,defaultRoute将被忽略。请参阅GitHub上的问题:https://github.com/yiisoft/yii2/issues/5892
建议采用以下配置作为一种措施:

[
    ...
    'defaultRoute' => 'default/index',
    ...
    'urlManager' => [
        'enablePrettyUrl' => true,
        'enableStrictParsing' => true,
        ...
        'rules' => [
            ...
            '' => '',   // <- this line should be added
        ],
    ],
    ...
]
vc9ivgsu

vc9ivgsu6#

这不是问题的答案,但了解以下信息可能会有所帮助:在yii\web\Application中存在catchAll属性,其被定义为:

指定应处理所有用户请求的控制器操作的配置。
用法:

'catchAll' => ['controller/action']

因此,对http://basic.com的每个请求都将调用controller/action

fwzugrvs

fwzugrvs7#

使用yii2,我可以在urlmanager中使用以下代码:

'rules'=> [
        ['pattern'=>'<action>', 'route'=>'controller/<action>'],
]
xfb7svmp

xfb7svmp8#

试试其他的解决方案...如果它们不起作用,那么就用我的简单技巧...
只需在根目录下创建一个index.php页面。
然后,在该文件中编写以下代码:

return header('Location: http://your page location');
shstlldc

shstlldc9#

如果“defaultRoute”不起作用-请检查“urlManager”的设置。可能在那里设置了默认路由。

'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [

            '' => 'site/index',  // this line should be chenged to ''=>''.

            '<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
        ],
    ],

相关问题