Yii 1.1.16 PHP 带两个参数的路由规则

Yii 1.1.16 PHP routing rule with two parameters

我写了 URL 规则,如下所示:

'posts/<username:(\w+)>/<title:(\w+)>' => 'posts/view'

下面我也有默认规则:

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

它会生成 URL,正如我所期望的那样 posts/kami/Post+title,但是当您单击 link 时,它会出现错误:Error 404. The system is unable to find the requested action "kami".

所以我尝试在默认规则下移动规则,因为我猜他们违反了我的规则,但是,如果我在默认规则下移动规则,它会创建不同的 URL,看起来像this: books/view?username=kami&title=Post+Title,link 确实按预期工作,但我不喜欢它的外观。

有人知道如何解决这个问题吗?

谢谢!

尝试将规则更改为

'posts/<username:\w+>/<title:.*?>' => 'posts/view'

问题是\w+只包含[a-zA-Z0-9_]。

因此Post+title中的+或空格)违反了规则