0

在我的 Yii 测试应用程序中,我有两种类型的 URL。示例如下:-

http://localhost/testapp/index.php?r=post/view&id=1&slug=maximizing-profit
http://localhost/testapp/index.php?r=category/view&slug=investment

第一个 URL 有 2 个参数;idslug第二个参数只有slug参数

在我的 urlManager 中,我有 2 条规则

<controller:\w+>/<action:\w+>/<slug:[a-zA-Z0-9-]+>/' => '<controller>/<action>
<controller:\w+>/<action:\w+>/<id:\d+>/<slug:[a-zA-Z0-9-]+>/' => '<controller>/<action>

使用此规则,我的第一个 URL 似乎格式不正确,因此将显示为

http://localhost/testapp/post/view/maximizing-profit?id=1

另一方面,第二个 URL 显示正常

http://localhost/testapp/category/view/investment

urlManager 中是否有我们应该遵循的规则优先级?

4

1 回答 1

0

将使用首先匹配 URL 的任何规则。

在您的情况下,只需切换两个规则的顺序。这是因为您的 slug 规则也匹配数字,包括只有 ID 的数字。如果切换规则,将首先捕获具有数字作为 ID 的那些,然后是那些具有非数字 ID 的。

于 2013-08-31T09:14:43.677 回答