Ошибка 404. Невозможно использовать Gii

Следуя http://www.yiiframework.com/doc/blog/1.1/en/prototype.scaffold учебному пособию, упоминается о добавлении некоторого кода в /blog/protected/config/main.php.

return array(
    ......
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),

    'modules'=>array(
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'pick up a password here',
        ),
    ),
);

Это последние несколько строк моего кода для main.php, как вы можете видеть, я следовал инструкциям...

        'errorHandler'=>array(
            // use 'site/error' action to display errors
            'errorAction'=>'site/error',
        ),
        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute',
                    'levels'=>'error, warning',
                ),
                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class'=>'CWebLogRoute',
                ),
                */
            ),
        ),
    ),

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params'=>array(
        // this is used in contact page
        'adminEmail'=>'example@example.com',
    ),
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),
    'modules'=>array(
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'pick up a password here',
        ),
    ),
);

Тем не менее, когда я посещаю index.php? R = gii, я получаю следующую ошибку:

Error 404 Unable to resolve the request "gii".

К вашему сведению - я использую версию 1.1.12, которая является последней стабильной версией.

ОБНОВИТЬ

Я удалил все и снова начал, и теперь работает. должно быть, сделал что-то глупое в пути

3 ответа

У меня была та же проблема, и я только что временно прокомментировал в config/main.php содержимое массива, которое является значением rules ключ:

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

Тогда я получил доступ giiсгенерировал мой контроллер и просмотр и наконец раскомментировал эти строки.

У вас уже есть 'modules' ключ конфигурационного массива в строке 21 здесь http://pastebin.com/x3zWWLtm. Удалить ключ 'modules' который вы добавили вручную и раскомментируйте 'gii' в этой строке 21:

<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
        // ...

        'modules'=>array(
                // uncomment the following to enable the Gii tool
                /*
                'gii'=>array(
                        'class'=>'system.gii.GiiModule',
                        'password'=>'Enter Your Password Here',
                        // If removed, Gii defaults to localhost only. Edit carefully to taste.
                        'ipFilters'=>array('127.0.0.1','::1'),
                ),
                */
        ),
        // ...
    );

Я только что скачал последний yii и создал веб-приложение:

f0t0n@lotus:~/public_html/localhost/yii$ php framework/yiic webapp ../yiiapp

Затем раскомментировали строки gii Модуль включен в конфигурацию, как я уже упоминал, и он отлично работает: http: //localhost/yiiapp/index.php? r = gii

Ну, ты попробовал другой URI, как: localhost/site/error?

Если у вас есть 404, то это проблема .htaccess, попробуйте сохранить следующий код в файле .htaccess в корневом каталоге:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# 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]
Другие вопросы по тегам