Ошибка 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]