我有UserControler,并在虚拟服务器http://basic.com/index.php?r=user/index中运行它。
UserControler
ne5o7dgx1#
您是否在配置中尝试过:
'defaultRoute' => 'user/index'
Default Controller
bn31dyow2#
正如一些人已经说过的,您需要在配置文件中添加defaultRoute。以下是它的外观://config/web.php(在基本模板中)或backend/config/main.php(在高级中)
defaultRoute
//config/web.php
backend/config/main.php
$config = [ ... 'components' => [ ... ], 'params' => $params, 'defaultRoute' => 'user/index', ];
ujv3wf0j3#
这可以在配置中设置,请参阅默认控制器:
[ 'defaultRoute' => 'main', ]
但是请注意,这与路由密切相关,路由可以完全由urlManager组件定制。如果您希望domain/profile像domain/user/profile一样工作,那么urlManager的这些规则可能是另一种方法:
urlManager
domain/profile
domain/user/profile
'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>', ),
希望这能对某人有所帮助:)
wwodge7n4#
从配置文件夹中打开web.php文件,然后添加以下内容:'defaultRoute' => 'admin'个到$config数组。
web.php
'defaultRoute' => 'admin'
$config
kokeuurv5#
请注意,当strictParsing在urlManager配置中设置为启用时,defaultRoute将被忽略。请参阅GitHub上的问题:https://github.com/yiisoft/yii2/issues/5892建议采用以下配置作为一种措施:
strictParsing
[ ... 'defaultRoute' => 'default/index', ... 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, ... 'rules' => [ ... '' => '', // <- this line should be added ], ], ... ]
vc9ivgsu6#
这不是问题的答案,但了解以下信息可能会有所帮助:在yii\web\Application中存在catchAll属性,其被定义为:
yii\web\Application
catchAll
指定应处理所有用户请求的控制器操作的配置。用法:
'catchAll' => ['controller/action']
因此,对http://basic.com的每个请求都将调用controller/action
controller/action
fwzugrvs7#
使用yii2,我可以在urlmanager中使用以下代码:
'rules'=> [ ['pattern'=>'<action>', 'route'=>'controller/<action>'], ]
xfb7svmp8#
试试其他的解决方案...如果它们不起作用,那么就用我的简单技巧...只需在根目录下创建一个index.php页面。然后,在该文件中编写以下代码:
return header('Location: http://your page location');
shstlldc9#
如果“defaultRoute”不起作用-请检查“urlManager”的设置。可能在那里设置了默认路由。
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '' => 'site/index', // this line should be chenged to ''=>''. '<controller:\w+>/<action:\w+>/' => '<controller>/<action>', ], ],
9条答案
按热度按时间ne5o7dgx1#
您是否在配置中尝试过:
Default Controller
bn31dyow2#
正如一些人已经说过的,您需要在配置文件中添加
defaultRoute
。以下是它的外观:
//config/web.php
(在基本模板中)或backend/config/main.php
(在高级中)ujv3wf0j3#
这可以在配置中设置,请参阅默认控制器:
但是请注意,这与路由密切相关,路由可以完全由
urlManager
组件定制。如果您希望domain/profile
像domain/user/profile
一样工作,那么urlManager
的这些规则可能是另一种方法:希望这能对某人有所帮助:)
wwodge7n4#
从配置文件夹中打开
web.php
文件,然后添加以下内容:'defaultRoute' => 'admin'
个到
$config
数组。kokeuurv5#
请注意,当
strictParsing
在urlManager
配置中设置为启用时,defaultRoute
将被忽略。请参阅GitHub上的问题:https://github.com/yiisoft/yii2/issues/5892建议采用以下配置作为一种措施:
vc9ivgsu6#
这不是问题的答案,但了解以下信息可能会有所帮助:在
yii\web\Application
中存在catchAll
属性,其被定义为:指定应处理所有用户请求的控制器操作的配置。
用法:
因此,对http://basic.com的每个请求都将调用
controller/action
fwzugrvs7#
使用yii2,我可以在urlmanager中使用以下代码:
xfb7svmp8#
试试其他的解决方案...如果它们不起作用,那么就用我的简单技巧...
只需在根目录下创建一个index.php页面。
然后,在该文件中编写以下代码:
shstlldc9#
如果“defaultRoute”不起作用-请检查“urlManager”的设置。可能在那里设置了默认路由。