J'ai UserControler
et je l'exécute sur un serveur virtuel http://basic.com/index.php?r=user/index . Comment puis-je configurer UserController
et l'action index
pour être la valeur par défaut lorsque je vais sur http://basic.com
Comme peu de gens l'ont déjà dit, vous devez ajouter defaultRoute
dans le fichier de configuration.
Voici à quoi cela devrait ressembler:
//config/web.php
dans de base modèle ou backend/config/main.php
in avancé
$config = [
...
'components' => [
...
],
'params' => $params,
'defaultRoute' => 'user/index',
];
Cela peut être défini dans la configuration, voir Contrôleur par défaut :
[
'defaultRoute' => 'main',
]
Mais notez que cela est étroitement lié au routage, qui peut être complètement personnalisé par le composant urlManager
. Alors si vous voulez, disons domain/profile
se comporter comme domain/user/profile
alors ces règles pour urlManager
pourraient être une autre façon de procéder:
'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>',
),
J'espère que cela aidera quelqu'un :)
Ce n'est pas la réponse à la question , mais il pourrait être utile de savoir: il y a une propriété catchAll
dans yii\web\Application
qui est défini comme:
La configuration spécifiant une action de contrôleur qui doit gérer toutes les demandes des utilisateurs.
Usage:
'catchAll' => ['controller/action']
Ainsi, chaque demande à http://basic.com appellera controller/action
Notez que defaultRoute
est ignoré, lorsque strictParsing
est défini sur activé dans la configuration urlManager
. Reportez-vous au problème sur GitHub: https://github.com/yiisoft/yii2/issues/5892
La configuration suivante est recommandée comme mesure:
[
...
'defaultRoute' => 'default/index',
...
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
...
'rules' => [
...
'' => '', // <- this line should be added
],
],
...
]
Essayez les autres solutions ... Si elles ne fonctionnent pas, alors utilisez ma simple astuce ...
Créez simplement une page index.php à la racine.
Ensuite, dans ce fichier, écrivez ce code:
return header('Location: http://your page location');
Ouvrez le web.php
fichier à partir de votre dossier de configuration et ajoutez ce qui suit:
'defaultRoute' => 'admin'
à ton $config
tableau.