2011-11-28 31 views
0

我試圖匹配這個網址:警予網址經理

http://www.example.org/en/site/page/id/1 

本規則:

'rules'=>array(
     '/'=>'site/index',  
     '<lang>/<controller:\w+>'=>'<controller>/index', 
     '<lang>/<controller:\w+>/<action:\w+>'=>'<controller>/<action>',  
     '<lang>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>/<id>', 
     '<lang>'=>'/', 
), 

我認爲這是有效的,但它不工作。

回答

3

您的網址中包含一個 「id」 字符串/不要求文本http://www.example.org/en/site/page/id/1 ...

http://www.example.org/en/site/page/1 

,或者嘗試URL追加多一個途徑爲

'<language:\w+>/<controller:\w+>/<action:\w+>/id/<id:\d+>' =>'<controller>/<action>/<id>', 

它應該同時工作..

+0

感謝您的回答提示!''///id/'=>'//id/'' – shox

0

看起來像語言參數路由不是正確的格式。試試這個:

'rules' => array(
    '/'              =>'site/index',  
    '<language:\w+>/<controller:\w+>'      =>'<controller>/index', 
    '<language:\w+>/<controller:\w+>/<action:\w+>'   =>'<controller>/<action>',  
    '<language:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' =>'<controller>/<action>/<id>', 
    '<language:\w+>'          =>'/', 
), 
+0

不工作也.. – shox

0

嘗試將更具體的規則移到頂部。

'rules'=>array(
     '<lang:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>/<id>',     
     '<lang:\w+>/<controller:\w+>/<action:\w+>'=>'<controller>/<action>',  
     '<lang:\w+>/<controller:\w+>'=>'<controller>/index', 
     '<lang:\w+>'=>'/', 
     '/'=>'site/index',  
), 

fixed lang regex * Credits to Moz Morris。

+0

沒有改變... – shox