Question

Je développe un site Web avec PHP Yii Framework et je suis maintenant stack, je dois démarrer gii, mais je ne peux pas le faire.quand je tape www.example.com/index.php/gii ou www.example.com/gii cela me donne cette erreur :

    /gii/default/login // <- website redirects to here

    This webpage has a redirect loop
    The webpage at http://www.example.com/gii/default/login has resulted in too many redirects.
Clearing your cookies for this site or allowing third-party cookies may fix the problem. 
If not, it is possibly a server configuration issue and not a problem with your computer.

Je ne pense pas que l'erreur soit due à une modification du htaccess et de la configuration principale, mais voici quand même le fichier de configuration main.php :

    'urlManager'=>array(
        'urlFormat'=>'path',
        'showScriptName'=>false,
        'rules'=>array(
            'site/page/<view:\w+>'=>'site/page',
            '<controller:\w+>/<cact:\w+>/<action:\w+>'=>'<controller>/<cact>',
            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),

et .htaccess :

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

#non-www to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule ^.*$ /index.php [L]

Alors pouvez-vous m'aider, s'il vous plaît ?

Était-ce utile?

La solution

Vérifiez si le module GII dans votre fichier de configuration est là et il est non motivé. Si Gii n'est pas là, vous devez l'ajouter dans le réseau de module.

'modules'=>array(
    'gii'=>array(
        'class'=>'system.gii.GiiModule',
        'password'=>***choose a password***
    ),
),

Plus d'infos sur gii ici

Autres conseils

Pour utiliser ce chemin : index.php?r=gii/default/login , vous devez désactiver le gestionnaire d'URL dans /protected/config/main.php

Vérifiez également urlManagerc'est rules.C'était le problème pour moi :

'components' => array(
    'urlManager' => array(
        'urlFormat' => 'path',
        'showScriptName' => false,
        'rules' => array(
            // ...
            // will handle `gii/default/login` uri and makes infinite redirection loop circle
            '<controller:\w+>/<action:\w+>/<sub_action:\w+>'=>'<controller>/<action>',
            // ...
        ),
     ),
 ),

Comme FelikZ mentionné, cela peut être dû au fait que vous avez créé un troisième paramètre dans une règle qui utilise \w+ au lieu de la valeur par défaut \d+ et correspondra donc à "gii" comme contrôleur, "default" comme action et "login" comme ID (ou sous-action, ou tout ce qui est mentionné).

Mes règles ressemblaient à ce qui suit :

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

Le correctif consiste à ajouter ce qui suit comme toute première règle afin que gii atteigne le bon endroit :

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

Ce qui devrait rendre votre tout urlManager la configuration ressemble à ceci :

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false,
    'rules'=>array(
        'gii/<controller:\w+>/<action:[\w-]+>' => 'gii/<controller>/<action>',

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

Ce problème se produit à cause des deux sessions de l'OP, par exemple Cookie phpsessid là-bas de deux domaines domaines .site.ru et admin.site.ru deux sessions différentes.Supprimer des biscuits Phpsessid et vous connecter à gii

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top