2012-05-21 91 views
1

我一直在開發基於Yii框架的Web應用程序。yii網址管理器。路徑格式的網址

我在試圖製作sef網址時遇到了麻煩。

我有什麼:

  1. 配置設置。

    'urlManager'=>數組( '網址格式'=> '路徑', 'showScriptName'=>假, '規則'=>數組( //規則這裏去 ) )

  2. 這是代碼,其用於tesing:

echo $this->createUrl('site/test', array('help'=>'me')

$this - 是控制LER。

如果我在配置空的'規則'數組空'我得到這個/site/test/help/me。我期待這一點。

如果

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
) 

我越來越/site/test?help=me這也在意料之中。

但如果

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
    '<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>/<help>', 
) 

我仍然得到/site/test?help=me。我期望看到/site/test/me

任何人都可以幫助我嗎?

在此先感謝。

回答

5

更改規則的順序並刪除<help>。它會自動添加到操作中。所以你的規則應該是這樣的:

'<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>', 
'<controller:\w+>/<action:\w+>' => '<controller>/<action>', 

規則的順序很重要。你需要先把最詳細的一個。

Regards

+0

它的工作原理。謝謝。 –