2013-01-20 110 views
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 /頁/索引」工作正常
鏈接「/」和「/ EN」返回錯誤「無法解析請求」頁/索引」。主頁Yii的URL規則

什麼是錯的規則

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

UPD:

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)); 
      } 

} 
+0

您的控制器是否稱爲PageController或PagesController?你最後的規則(有效的)說網頁,但其他人說網頁。 – frostyterrier

+0

我的控制器名稱是PagesController,但是我爲'page' – Eugene

+0

創建了規則'/page/'=>'pages/read'如果您將前兩條規則更改爲'pages/index'而不是'page/index'是否會得到相同的錯誤?如果你這樣做,你可能需要發佈你的控制器代碼,因爲規則看起來像他們應該除了那個。 – frostyterrier

回答

0

您的規則不被重定向到page/index,這意味着他們將試圖訪問PageController.php,而控制器內,他們會嘗試工作訪問actionIndex。聽起來好像你沒有控制器PageController.php,更不用說控制器中的actionIndex

您需要修復這些規則的目標以包含有效的控制器/操作組合。