Domanda

Sto sviluppando il sito Web con Php Yii Framework e ora sono pila, ho bisogno di iniziare GII, ma non posso farlo.Quando digito www.example.com/index.php/gii o www.example.com/gii mi dà questo errore:

    /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.
.

Non penso che l'errore sia a causa della configurazione HTACCESS e principale modificata, ma comunque qui è il file di configurazione del 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>',
        ),
    ),
.

e .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]
.

Quindi puoi aiutarmi, per favore?

È stato utile?

Soluzione

Controllare se il modulo GII nel file di configurazione è lì e non è commentato. Se GII non è lì dovrebbe aggiungerlo all'interno dell'array del modulo.

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

Maggiori informazioni per GII qui

Altri suggerimenti

Per utilizzare questo percorso: index.php?r=gii/default/login, è necessario disattivare il gestore URL in /protected/config/main.php

Controlla anche il generacodiccode urlManager.Quello era il problema per me:

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

come Felikz ha menzionato , questo potrebbe essere perché hai creato un terzo param in una regola che utilizza \w+ anziché\d+ predefinito e quindi corrisponderanno a "GII" come controller, "predefinito" come azione e "login" come ID (o Sub Azione o qualsiasi altra cosa sia menzionato).

Le mie regole sembravano quanto segue:

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

La correzione è aggiungere quanto segue come prima regola per rendere GII ha colpito il posto giusto:

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

Quale dovrebbe rendere l'intera configurazione urlManager sembrare qualcosa come quanto segue:

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

Questo problema si verifica a causa delle due sessioni dell'OP, ad esempio Cookie PhpsessID lì due domini Dominio .Site.ru e admin.site.ru Due sessioni diverse.Elimina i cookie di PhpslessID e accedi a GII

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top