UserControler
があり、仮想サーバーで実行しています http://basic.com/index.php?r=user/index 。 http://basic.com にアクセスするときに、UserController
とaction index
をデフォルトに設定するにはどうすればよいですか
すでに数人が言ったように、構成ファイルにdefaultRoute
を追加する必要があります。
次のようになります。
//config/web.php
in basic templateまたはbackend/config/main.php
in 高度
$config = [
...
'components' => [
...
],
'params' => $params,
'defaultRoute' => 'user/index',
];
これは、構成内で設定できます。 デフォルトコントローラー を参照してください。
[
'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>',
),
うまくいけば、これは誰かを助けるでしょう:)
これは質問の答えではありませんが、知っておくと役に立つかもしれません:yii\web\Application
にcatchAll
プロパティがあります次のように定義されます:
すべてのユーザー要求を処理するコントローラーアクションを指定する構成。
使用法:
'catchAll' => ['controller/action']
したがって、 http://basic.com へのすべてのリクエストはcontroller/action
を呼び出します
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
],
],
...
]
他の解決策を試してください...うまくいかない場合は、私の簡単なトリックを使用してください...
ルートにindex.phpページを作成するだけです。
次に、そのファイルに次のコードを記述します。
return header('Location: http://your page location');
Yii2では、urlmanagerで次のようにできました:
'rules'=> [
['pattern'=>'<action>', 'route'=>'controller/<action>'],
]
web.php
ファイルを構成フォルダーから追加し、次を追加します。
'defaultRoute' => 'admin'
あなたの$config
配列。