web-dev-qa-db-ja.com

yii2でデフォルトのコントローラーを設定する方法

UserControlerがあり、仮想サーバーで実行しています http://basic.com/index.php?r=user/indexhttp://basic.com にアクセスするときに、UserControllerとaction indexをデフォルトに設定するにはどうすればよいですか

34
Jackson Tong

あなたの設定で試しましたか:

'defaultRoute' => 'user/index'

デフォルトのコントローラー

55
Aivar

すでに数人が言ったように、構成ファイルにdefaultRouteを追加する必要があります。
次のようになります。

//config/web.php in basic templateまたはbackend/config/main.php in 高度

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

これは、構成内で設定できます。 デフォルトコントローラー を参照してください。

[
    'defaultRoute' => 'main',
]

ただし、これはルーティングに密接に関連しており、urlManagerコンポーネントによって完全にカスタマイズできることに注意してください。次に、domain/profiledomain/user/profileurlManagerのこれらのルールは、別の方法かもしれません:

'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>',
),

うまくいけば、これは誰かを助けるでしょう:)

11
LihO

これは質問の答えではありませんが、知っておくと役に立つかもしれません:yii\web\ApplicationcatchAllプロパティがあります次のように定義されます:

すべてのユーザー要求を処理するコントローラーアクションを指定する構成。

使用法:

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

したがって、 http://basic.com へのすべてのリクエストはcontroller/actionを呼び出します

1

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
        ],
    ],
    ...
]
1
chintogtokh

他の解決策を試してください...うまくいかない場合は、私の簡単なトリックを使用してください...

ルートにindex.phpページを作成するだけです。

次に、そのファイルに次のコードを記述します。

return header('Location: http://your page location');
1
manik mistry

Yii2では、urlmanagerで次のようにできました:

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

web.phpファイルを構成フォルダーから追加し、次を追加します。

'defaultRoute' => 'admin'

あなたの$config配列。

enter image description here

1
xdev