我想获取以下网址:
http://domain.com/post/1/some-titles-here
但我得到了:
http://domain.com/post/1?title=some-titles-here
我正在使用此配置:
'urlFormat' => 'path',
...
//'post/<id:\d+>/<title>' => 'post/view/',
'post/<id:\d+>/<title:\w+>' => 'post/view/',
'post/<id:\d+>' => 'post/view/',
...
然后获取我正在执行的URL:
Yii::app()->createAbsoluteUrl('post/view', array('id' => $this->id,'title' => $this->title));
我遵循第三条规则: http://www.yiiframework.com/doc/guide/1.1/en/topics.url#using-named-parameters
答案 0 :(得分:1)
您用来匹配标题的正则表达式不正确:<title:\w+>
只匹配单个单词,但您的标题也有连字符。
请改用此规则:
'post/<id:\d+>/<title:([A-Za-z0-9-]+)>' => 'post/view/',
这将使标题与字母,数字和连字符匹配。
答案 1 :(得分:0)
这是一个适合我的代码:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName' => false,
'rules'=>array(
'' => 'site/index',
'article/<id:\d+>/<alias:[-\w]+>' => 'article/view',
'article/cat/<id:\d+>-<alias:[-\w]+>' => 'category/view',
结果网址: