2

ウェブルートで Yii アプリケーションを作成しました。Gii モジュールを有効にし、.htaccess を変更して URL の index.php 部分を削除しました。

urlManagerconfig/main.php 構成ファイルで定義されたコンポーネントもあります。

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

ブラウザに入るhttp://www.mydomain.com/giiと、にリダイレクトされhttp://www.mydomain.com/gii/default/loginます。

明らかに、に一致する URL はありませrulesurlManager。これは、Yii が一致する URL ルールを見つけられない場合、一致するモジュールを探し始めるということですか?

4

2 に答える 2

4

bobo、はい、Yiiが一致するモジュールを調べ始めているように見えます:

yii/framework/gii/GiiModule.php, Line 43
* http://localhost/path/to/index.php?r=gii
*
* If your application is using path-format URLs with some customized URL rules, you may need to add
* the following URLs in your application configuration in order to access GiiModule:
* <pre>
* 'components'=>array(
*     'urlManager'=>array(
*         'urlFormat'=>'path',
*         'rules'=>array(
*             'gii'=>'gii',
*             'gii/<controller:\w+>'=>'gii/<controller>',
*             'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',
*             ...other rules...
*         ),
*     )
* )
* </pre>

通常のルールから始まり、その後、追加のモジュール(およびそれらのコントローラー/アクション)の試行に進むように見えます。すべての最初の部分としてモジュールID(この場合はgii)を使用しているようです。

さらなる研究では、そうです、そうです。詳細については、Yiiモジュールのページを参照してください。

于 2011-12-28T15:53:38.000 に答える
0

どういう意味ですか??Giiはモジュールであり、URLは正しいです。CWebModuleのdefaultControllerプロパティは「デフォルト」であるため、必要に応じてGiiを拡張してカスタマイズできます。

于 2011-12-27T18:10:02.317 に答える