0
'urlManager'=>array(
            'class'=>'application.components.UrlManager',
            'urlSuffix'=>'/',
            'baseUrl'=>'',
            'showScriptName'=>false,
            'urlFormat'=>'path',
            'rules'=>array(
                '<language:\w{2}>'   => 'page/index',
                ''   => 'page/index',
                '<language:\w{2}>/page/<alias:.*>' => 'pages/read',
            )

リンク "/en/page/index" は正常に機能し
ます リンク "/" および "/en" は、"リクエスト "ページ / インデックス" を解決できません" というエラーを返します。

ルールの何が悪い

'<language:\w{2}>' => 'page/index'
'' => 'page/index',  

?

更新:

pagesController にはアクションがあります。

public function actionRead($alias){

            //some php code...

            if($model==null)
            {
                throw new CHttpException(404,'page not found...');
            }else
            {
                $this->render('read',array('model'=>(object)$model));
            }

}
4

1 に答える 1

0

動作しないルールはにリダイレクトされpage/indexます。つまり、ルールはにアクセスを試み、PageController.phpそのコントローラー内でアクセスを試みますactionIndex。あなたがどちらかのコントローラーを持っているようには聞こえませんがPageController.php、ましてやactionIndexそのコントローラー内にあります。

有効なコントローラー/アクションの組み合わせを含めるには、これらのルールのターゲットを修正する必要があります。

于 2013-01-22T02:03:18.590 に答える