我写了一个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>',
它会像我期望的那样posts/kami/Post+title
生成网址,但是当您点击链接时会出现错误:Error 404. The system is unable to find the requested action "kami".
所以我尝试在默认规则下移动规则,因为我猜测它们违反了我的规则,但是,如果我在默认规则下移动规则,它会创建不同的URL,如下所示:{{1} ,链接确实按预期工作,但我不喜欢它的样子。
任何人对如何解决这个问题都有任何想法?
谢谢!
答案 0 :(得分:2)
尝试将规则更改为
'posts/<username:\w+>/<title:.*?>' => 'posts/view'
问题是\ w +只包括[a-zA-Z0-9_]。
+
中的Post+title
(或空白)违反了规则