1

在 Yii URL 管理器中,如果附加了 GET 参数,我想为 URL 定义不同的路由。例如,URL 'shopping-wizard/' 应该转到路由 shoppingWizard/index,而 URL 'shopping-wizard/?answer=10' 应该转到路由 shoppingWizard/result。

我尝试了以下规则:

'urlManager'=>array(
    'rules'=>array(
        'shopping-wizard/?answer=<answer>' => 'shoppingWizard/result',
        'shopping-wizard/' => 'shoppingWizard/index',
    ),
),

这不起作用,因为 CUrlRule::parseUrl() 在模式中添加了尾部斜杠。由于 SEO 原因,我的带参数的 URL 可能没有斜杠。

它确实适用于 URL 规则组件,但有更简单的方法吗?没有单独的组件?

4

1 回答 1

0

您可以使用这样的规则:

'urlManager'=>array(
    'rules'=>array(
        'shopping-wizard/<answer:\d+>' => 'shoppingWizard/result', //d+ - digits only
        'shopping-wizard/' => 'shoppingWizard/index',
    ),
),

在你的控制器中:

public function actionResult($answer) {
    ...
}
于 2014-04-24T16:00:19.967 回答