yii的urlManager设置为path的情况下无法支持自己定义rewrite

yii的urlManager设置为path的情况下无法支持自己定义rewrite,在get模式下又全变成了动态页,需要设置多个rewrite规则,模板修改也很不方便。

比如我有以下需求场景

我有开发一个多用户的blog

每个blog首页的真实的url为:

www.test.com/index.php?r=site/index&cid=100

www.test.com/index.php?r=site/index&cid=101

www.test.com/index.php?r=site/index&cid=102

现在我在urlManager中使用path模式,可以变为

www.test.com/site/index/cid/100.html

列表页可相应变为:

www.test.com/blog/list/cid/100/page/1.html

最终blog信息页变为:

www.test.com/blog/info/bid/100.html

现在我的需求是

首页我想减化为:

www.test.com/100 或www.test.com/100.html

而内容页还是保持 path不变.

可yii在path模式下是不能实现的

RewriteRule ^(\d+)$ /index.php/site/index/cid/$1 [L]

在get模式下可以

RewriteRule ^(\d+)$ /index.php?r=site/index&cid=$1 [L]

但在get模式下列表页及详细页也变成动态的了。这是我不想要的。

如果urlManager在设置为path时,通过真实的动态url也能访问相应页面就能解决这个问题。希望能支持这个功能。

请问各位有什么好的办法吗?谢谢

你需要给urlManager指定rules. 例如:




'rules'=>array(

    '<cid:\d+>'=>'site/index',

)



已ok.谢谢!