中文url分页地址格式化的问题

使用中文做地址参数,规则如下:




'tag/<tag>' => 'test/article/list'

'tag/<tag>_<page:\d+>' => 'test/article/list'



直接使用CLinkPager widget都会生成这样的分页地址:


/tag/测试.html?page=2...

但如果是使用id作为参数的话,生成的地址就是


/tag/page/2.html

按道理来说应该不会出现?page=2…这样的地址格式吧?就算使用中英文参数都这样,但使用数字的话就一切正常。我使用最新的svn…请问如何解决?


/tag/测试.html?page=2...

这一条适应第一条rule,如果不想出现?page=2这样的情况,应该修改第一条rule为


'tag/<tag>' => 'test/article/list/*'

生成URL


/tag/page/2.html

是因为两条规则中没有适应的,只能生成默认的PATH形式.

这个问题与版本无关,请检查你的设置参数.

我想要的结果是page=2时


/tag/测试_2.html

问题解决了,原来是规则顺序的问题…




'tag/<tag>_<page:\d+>' => 'test/article/list'

'tag/<tag>' => 'test/article/list'



还有楼上说的不出现?page=2这种情况应该这样写


'tag/<tag>/*' => 'test/article/list'

一直没注意到原来是顺序问题。

不好意思,/*放错地方。